瀏覽器原理中階
HTTP/1、HTTP/1.1 和 HTTP/2 的區別
HTTP/1.0
- 每個請求都需建立一個新的 TCP 連線,請求完成後立即關閉(短連線)
- 無法重用連線,效能較差
HTTP/1.1
- 持久連線(Keep-Alive):預設保持 TCP 連線,可重複使用
- Pipeline:可以一次送出多個請求,但回應需按照順序(Head-of-Line Blocking 問題)
- 新增
Hostheader,支援虛擬主機 - 支援 Chunked Transfer Encoding(分塊傳輸)
HTTP/2
- 多工(Multiplexing):在同一個 TCP 連線上並行處理多個請求/回應,解決了 HOL Blocking
- Header 壓縮(HPACK):壓縮重複的 Header,減少傳輸量
- Server Push:伺服器可主動推送資源給客戶端,不需等待請求
- 二進制分幀(Binary Framing):以二進制格式傳輸,更高效
- 仍基於 TCP,若 TCP 層有封包遺失,仍會有 HOL Blocking
總結比較
| 特性 | HTTP/1.0 | HTTP/1.1 | HTTP/2 |
|---|---|---|---|
| 連線 | 每次新建 | 持久連線 | 持久連線 |
| 多工 | 不支援 | 不支援(有 Pipeline) | 支援 |
| Header 壓縮 | 無 | 無 | HPACK |
| Server Push | 無 | 無 | 支援 |
| 傳輸格式 | 文字 | 文字 | 二進制 |
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
