與HTTP/2的比較
HTTP/3 是為 QUIC 設計的,QUIC 是一種能自行處理資料串流的傳輸層協定。
HTTP/2 是為 TCP 設計的,因此資料串流在 HTTP 層處理。
相似處 ( Similarities )
這兩種協定為客戶端提供了幾個幾乎相同的功能集。
兩者都提供伺服器端推送
兩種協定都具有標頭壓縮,並且 QPACK 和 HPACK 在設計上相似
兩種協定都在單個連接上提供串流多路復用。
不同處 ( Differences )
區別主要在細節上,並且歸因於 HTTP/3 對 QUIC 的使用:
得益於 QUIC 的 0-RTT 握手,HTTP/3 可以提供更好的 early data 支援,而 TCP Fast Open 和 TLS 通常只能傳輸更少的數據,且經常存在問題。
得益於 QUIC,HTTP/3 的握手速度比 TCP+TLS 快得多。
HTTP/3 不存在明文的不安全版本。儘管在網際網路上很少見,HTTP/2 還是可以不配合 HTTPS 來實現和使用。
通過 ALPN 拓展,HTTP/2 可以直接在 TLS 握手時進行協商。 HTTP/3 基於 QUIC,所以需要憑藉回應中的
Alt-Svc:
標頭來向客戶端宣告。HTTP/3 不提供優先級控制。 計劃用於 HTTP/3 的 HTTP/2 優先級控制方法被認為過於復雜或根本無法適用,目前正在努力創建一種更簡單的機制。 當前計劃的更簡單的機制是向後移植到 HTTP/2,並利用 HTTP/2 的擴展規範優先級控制。
Last updated