跳至主要內容
Skip to content

總結:HTTP 知識地圖與速查表

恭喜你完成了這趟 HTTP 深度學習之旅!本篇將整理全系列核心知識,並提供速查表供日常使用。


一、 知識地圖

1.1 HTTP 全景圖


二、 速查表

2.1 HTTP 方法

方法用途冪等有 Body
GET讀取資源
POST創建資源
PUT完整更新
PATCH部分更新
DELETE刪除資源
HEAD只取標頭
OPTIONS預檢請求

2.2 狀態碼速查

範圍類型常見碼
1xx資訊101 Switching Protocols
2xx成功200 OK, 201 Created, 204 No Content
3xx重導向301 永久, 302 暫時, 304 未修改
4xx客戶端錯誤400 請求錯誤, 401 未認證, 403 禁止, 404 找不到, 422 驗證失敗
5xx伺服器錯誤500 內部錯誤, 502 閘道錯誤, 503 服務不可用

2.3 常用標頭

請求標頭

標頭用途範例
Accept接受的內容類型application/json
Accept-Encoding接受的壓縮gzip, br
Authorization認證資訊Bearer token
Content-Type請求體類型application/json
CookieCookie 資料session=abc
If-None-MatchETag 驗證"abc123"
Origin請求來源https://app.com

回應標頭

標頭用途範例
Cache-Control快取控制max-age=3600
Content-Encoding內容壓縮gzip
Content-Type回應類型application/json
ETag資源標籤"abc123"
Set-Cookie設置 Cookiesession=abc; HttpOnly
Access-Control-Allow-OriginCORS 允許來源https://app.com

2.4 Cache-Control 指令

指令說明
public允許所有快取
private只允許瀏覽器
no-cache每次驗證
no-store禁止儲存
max-age=N有效期(秒)
s-maxage=NCDN 有效期
immutable永不變更
屬性說明推薦
HttpOnly禁止 JS 存取✅ 敏感 Cookie
Secure只在 HTTPS✅ 生產環境
SameSite跨站限制Strict 或 Lax
Max-Age有效期依需求
Path路徑限制/

2.6 CORS 標頭

標頭說明
Access-Control-Allow-Origin允許的來源
Access-Control-Allow-Methods允許的方法
Access-Control-Allow-Headers允許的標頭
Access-Control-Allow-Credentials是否允許 Cookie
Access-Control-Max-Age預檢快取時間

三、 HTTP 版本對比

特性HTTP/1.1HTTP/2HTTP/3
多路復用
標頭壓縮HPACKQPACK
伺服器推送
傳輸層TCPTCPQUIC/UDP
HOL 阻塞TCP 層
連線遷移

四、 安全檢查清單

4.1 傳輸安全

markdown
□ 使用 HTTPS
□ 設置 HSTS
□ TLS 1.2+
□ 定期更新憑證

4.2 認證安全

markdown
□ 密碼加密儲存(bcrypt/argon2)
□ JWT 使用強密鑰
□ 設置合理過期時間
□ 實作 Refresh Token
□ 登入失敗限制

4.3 API 安全

markdown
□ CORS 白名單
□ 輸入驗證
□ 輸出編碼
□ SQL/NoSQL 注入防護
□ 限流
□ 安全標頭(Helmet)
markdown
□ HttpOnly
□ Secure
□ SameSite
□ 避免敏感資料

五、 效能優化清單

5.1 減少請求

markdown
□ 合併 CSS/JS
□ 使用 Sprite 圖
□ 使用 HTTP/2
□ 預載入關鍵資源

5.2 減少大小

markdown
□ Gzip/Brotli 壓縮
□ 圖片壓縮和 WebP
□ Tree Shaking
□ 移除未使用 CSS

5.3 快取策略

markdown
□ 靜態資源長期快取
□ 使用 hash 檔名
□ HTML 使用 no-cache
□ 使用 CDN

六、 工具速查

工具用途
DevTools Network瀏覽器分析
cURL命令列請求
HTTPie人性化命令列
PostmanAPI 測試
Charles/Wireshark抓包分析

七、 學習路徑

7.1 初學者

  1. HTTP 基礎概念
  2. 方法與狀態碼
  3. 標頭基礎
  4. CORS 入門
  5. DevTools 使用

7.2 進階者

  1. HTTP/2、HTTP/3
  2. 快取策略
  3. 安全與認證
  4. API 設計
  5. 效能優化

7.3 專家級

  1. 協定底層(TCP、QUIC)
  2. 自建 CDN
  3. 效能監控
  4. 安全審計
  5. 貢獻開源

八、 常見問題

Q1: CORS 錯誤怎麼解?

markdown
1. 檢查伺服器是否設置 Access-Control-Allow-Origin
2. 使用 credentials 時不能用 \*
3. 確認 OPTIONS 預檢請求正常返回

Q2: 快取不生效?

markdown
1. 檢查 Cache-Control 標頭
2. 確認 DevTools 沒有勾選 Disable cache
3. 檢查 Vary 標頭

Q3: JWT 過期怎麼處理?

markdown
1. 使用 Refresh Token 刷新
2. 前端攔截 401 錯誤自動刷新
3. 設定合理的過期時間

總結

這趟 HTTP 學習之旅,我們從零開始,走過了:

  • 基礎:協定結構、方法、狀態碼、標頭
  • 版本演進:HTTP/1.1 → HTTP/2 → HTTP/3
  • 安全:CORS、Cookie、認證、攻擊防禦
  • 效能:快取、壓縮、CDN
  • 實踐:API 設計、測試、工具使用

> **學習永無止境**——HTTP 協定仍在不斷演進。保持好奇心,持續關注新技術!


延伸閱讀與資源

官方規範

學習資源

工具


🎉 恭喜完成 HTTP 系列! 🎉