HTTP 網路請求完全指南
HTTP(HyperText Transfer Protocol)是 Web 世界的基石。無論你是前端工程師、後端開發者,還是 DevOps 工程師,深入理解 HTTP 都是不可或缺的核心能力。
本專題將從協定的本質出發,帶你深入理解每一個 Header、每一個狀態碼背後的設計哲學,最終掌握從開發到部署的完整知識體系。
學習路徑圖
章節清單
階段一:協定本質 (Foundations)
從最基礎的概念開始,把 HTTP 協定講透講深。
- 網路請求的一生:從輸入 URL 到頁面渲染 - DNS、TCP、TLS、HTTP 完整流程
- HTTP 協定結構解剖 - 報文結構、起始行、Headers、Body
- URI/URL/URN 完全指南 - 規範解讀、編碼規則、常見陷阱
- HTTP Methods(上):GET 與 POST - 安全性、冪等性、本質差異
- HTTP Methods(下):其他方法 - PUT/PATCH/DELETE/OPTIONS/HEAD
- 請求 Headers 全解析 - Content-Type、Accept、Authorization 等
- 回應 Headers 全解析 - Set-Cookie、Cache-Control、安全 Headers
- 狀態碼寶典(上):1xx-3xx - 資訊、成功、重導向
- 狀態碼寶典(下):4xx-5xx - 客戶端錯誤、伺服器錯誤
- HTTP 版本演進史 - 從 0.9 到 3 的進化之路
階段二:HTTP/1.1 深入 (HTTP/1.1 Deep Dive)
HTTP/1.1 仍是主流,必須掌握其特性與限制。
- 持久連線與 Keep-Alive - 連線重用、連線池管理
- 管線化的失敗教訓 - 隊頭阻塞、為何被棄用
- 分塊傳輸編碼 - Chunked Transfer、Streaming
- 內容協商機制 - Accept-*、Quality Values
階段三:HTTP/2 與 HTTP/3 (Modern Protocols)
理解現代協定的優化原理與實務應用。
- HTTP/2 核心:二進位分幀與多路複用 - Frame、Stream、解決隊頭阻塞
- HTTP/2 進階:Server Push 與 HPACK - 主動推送、標頭壓縮
- HTTP/3 與 QUIC 協定 - UDP、0-RTT、連線遷移
- 升級策略:遷移到 HTTP/2/3 - ALPN、伺服器配置
階段四:前端請求實作 (Client-side)
從原生 API 到封裝庫,掌握各種實務技巧。
- XMLHttpRequest:歷史與原理 - AJAX 起源、生命週期
- Fetch API 完整指南 - Promise-based、Request/Response
- Fetch 進階:AbortController 與 Streaming - 取消請求、進度追蹤
- Axios 深度剖析 - 攔截器原理、對比 Fetch
- 錯誤處理的藝術 - 統一處理、優雅降級
- 重試機制與指數退避 - 策略設計、熔斷機制
- 併發控制與請求排程 - 佇列、限流、取消
階段五:後端實作 (Server-side)
入門但完整,理解伺服器端視角。
- Node.js http 模組原理 - 原生 createServer
- Express 核心:中介軟體機制 - 洋蔥模型、next()
- 請求解析:Body Parser 的秘密 - JSON、Form、Multipart
- 路由設計與參數處理 - RESTful、動態路由
- 回應設計原則 - 狀態碼、錯誤格式、分頁
- 日誌與請求追蹤 - Morgan、Request ID
階段六:安全與認證 (Security & Auth)
這是重中之重,每個主題獨立講透。
- 同源政策與 CORS(上):原理篇 - 同源政策、瀏覽器判斷
- 同源政策與 CORS(下):實戰篇 - 預檢請求、Cookie 跨域
- Cookie 機制完全解析 - 屬性、SameSite、第三方
- Session 與 Token 的抉擇 - Stateful vs Stateless
- JWT 深入剖析 - 結構、簽名、Refresh Token
- OAuth 2.0 完整圖解 - 授權碼、PKCE、OIDC
- 常見攻擊與防禦 - CSRF、XSS、安全 Headers
階段七:快取機制 (Caching)
快取是效能的關鍵,必須獨立成章。
- HTTP 快取總覽 - 強快取 vs 協商快取
- Cache-Control 全參數解析 - max-age、no-cache 等
- ETag 與條件請求 - If-None-Match、304 優化
- 快取策略實戰 - 靜態資源、API 回應
- CDN 與邊緣快取 - 原理、Purge、服務比較
階段八:資料傳輸優化 (Transfer Optimization)
- 資料壓縮:Gzip vs Brotli - 壓縮算法、Accept-Encoding
- 檔案上傳的 HTTP 細節 - Multipart、Range 續傳
- SSE (Server-Sent Events) - EventSource、與 WebSocket 比較
- Streaming 與長連接 - Chunked Response、NDJSON
階段九:API 設計與測試 (API Design)
- RESTful API 設計原則 - 資源導向、命名規範
- API 版本控制策略 - URL vs Header、廢棄策略
- GraphQL vs REST - 優缺比較、適用場景
- API 文件與 OpenAPI - Swagger、契約測試
- API 測試實戰 - Postman、MSW、Vitest
階段十:工具與除錯 (Tools & Debugging)
- DevTools Network 面板精通 - Timing、Waterfall
- cURL 與 HTTPie 實戰 - 命令列請求技巧
- 抓包工具:Wireshark 與 Charles - HTTPS 解密、封包分析
階段十一:終極實戰 (Final Projects)
- 實戰專案:API Client 封裝 - 攔截器、重試、TypeScript
- 實戰專案:完整後端 API 服務 - Express + JWT + CORS
- 總結:HTTP 知識地圖與速查表 - 全系列知識圖譜
與其他專題的關聯
本系列與站內其他專題有密切關聯:
| 本系列文章 | 相關專題 |
|---|---|
| HTTP/3 與 QUIC | WebTransport 專題 |
| 資料壓縮 | Binary Data 專題 |
| 檔案上傳 | 檔案上傳專題 |
| SSE | WebSocket 專題 |
> **建議導讀**:如果你是完全的初學者,建議從第 01 篇開始循序漸進。如果你已有基礎,可以直接跳到感興趣的章節。