你可以說一下 http 版本的發展過程嗎
總結:0.9:只能發送 get,無狀態。1.0:新增 post,請求頭,狀態碼,cookie。1.1:新增 put/delete/options/patch,keep-alive,pipeline。2.0:二進制協議,多路復用,頭部壓縮。3.QUIC 協議,徹底解決TCP隊頭阻塞問題。
總體演進概述
版本 | 主要特性 |
---|---|
HTTP/0.9 | 最基礎版本,僅支持 GET 請求,無狀態。 |
HTTP/1.0 | 引入 POST、請求頭、狀態碼、Cookie 等,功能初步完善。 |
HTTP/1.1 | 支持更多方法(PUT/DELETE/PATCH 等),引入長連接和管道機制。 |
HTTP/2.0 | 基于二進制協議,支持多路復用、頭部壓縮,性能大幅提升。 |
HTTP/3.0 | 使用 QUIC 協議(基于 UDP),徹底解決 TCP 隊頭阻塞問題。 |
各版本詳細說明
HTTP/0.9
- 特點:
- 只允許客戶端發送
GET
請求。 - 沒有請求頭(Headers)和狀態碼。
- 返回的內容只有 HTML 文檔,沒有元數據。
- 只允許客戶端發送
- 缺點:功能極其有限,現已淘汰。
HTTP/1.0
- 新增特性:
- 支持
POST
方法。 - 引入請求頭(如
User-Agent
、Content-Type
)。 - 增加狀態碼(如
200 OK
,404 Not Found
)。 - 支持 Cookie,實現簡單會話跟蹤。
- 支持
- 缺點:每次請求都需要建立新的 TCP 連接,效率較低。
HTTP/1.1
- 改進點:
- 新增請求方法:
PUT
,DELETE
,OPTIONS
,PATCH
等。 - 引入
keep-alive
實現持久連接,減少連接開銷。 - 支持請求管道化(pipelining),多個請求可一次性發出。
- 新增請求方法:
- 現狀:目前仍廣泛使用,兼容性好。
HTTP/2.0
- 核心技術:
- 使用二進制協議替代文本協議,解析更高效。
- 支持多路復用,多個請求共用一個 TCP 連接。
- 頭部壓縮(HPACK)減少傳輸體積。
- 優勢:顯著提升加載速度和資源傳輸效率。
- 常見實現:基于 TLS 的 ALPN 擴展。
HTTP/3.0
- 核心變化:
- 底層協議由 TCP 改為 UDP,使用 Google 提出的 QUIC 協議。
- 徹底解決 TCP 中的隊頭阻塞問題。
- 優點:
- 更低延遲。
- 更快連接建立。
- 缺點:
- 兼容性差,部分中間設備不支持。
- 部署成本高,尚未大規模普及。