HTTP/3 協定出爐

HTTP/3 (h3) 的協定決定了,跟 HTTP/1.x 和 HTTP/2 很大的不同在於,HTTP 1.x 和 HTTP2 都走在 TCP 上,而 HTTP3 會走在 QUIC (UDP) 上。

  • 註1:HTTP/3 的 QUIC 非 Google 的 QUIC
  • 註2:以往 iptables 都開 443/tcp,以後可能會需要多開 443/udp 囉~

HTTP 版本演進

  1. 1999: HTTP/1.1
  2. 2015: HTTP/2
  3. 2019: HTTP/3

HTTP/3 協定出爐

HTTP/3 的原始文章 與 討論可見下述:

原文:HTTP/3 | daniel.haxx.se - HTTP/3 is the coming new HTTP version that uses QUIC for transport!

  • 長期被稱作 HTTP-over-QUIC (HTTP/QUIC) 的 Protocol 現在被重新命名,正式更名為 HTTP/3。
  • 此決定最初是由 Mark Nottingham 提議 與 後續決議影片,詳見:

QUIC (Quick UDP Internet Connections) 是 Google 最開始的嘗試,簡單說就是快速的 UDP 連線,希望取代 TCP 成為新的標準。

於是 QUIC 工作組在 IETF 組織來制定 QUIC 傳輸協議。

IETF 定義的 QUIC 與 Google 定義的細節上有很多差異,所以分下述兩個名字:

  • iQUIC:在 iQUIC 上發送 HTTP 的 Protocol 稱為 「hq(HTTP-over-QUIC)」
  • gQUIC:Google 定義的 QUIC

於 2018/11/7,Litespeed 的 Dmitri 與 Facebook 在 HTTP/3 完成相容性、操作方面的測試。

  • 在會議結束時,通過將當時的 HTTP-over-QUIC (HTTP/QUIC) 的 Protocol 名稱,正式更名為 HTTP/3。
  • 於是 HTTP/3 就是使用 QUIC 作為傳輸層的新 HTTP 版本。

下述摘錄自此篇:What is HTTP/3 ? – devgorilla – Medium

  • QUIC is very similar to TCP+TLS+HTTP/2 implemented on UDP
  • Key features of QUIC over existing TCP+TLS+HTTP2 include (使用 QUIC 的優點)
    • Dramatically reduced connection establishment time
    • Improved congestion control
    • Multiplexing without head of line blocking
    • Forward error correction
    • Connection migration

下述摘錄自此篇:下一代網際網路傳輸協定將不再用 TCP 協定,HTTP/3名稱確定了

  • 標準組織網際網路工程任務組(Internet Engineering Task Force, IETF)近日商討下一代 HTTP 底層協定,可望將改用以 UDP 協定發展出的 QUIC 技術,並不再使用沿用多年的 TCP 協定,同時新一代 HTTP 將命名為 HTTP/3。
  • 今天的 HTTP (1.0、1.1及2) 都是以 TCP (Transmission Control Protocol) 協定為基礎實作出來。
    • TCP 作為一種傳輸控制協定,優點是安全、流量穩定、講求封包的傳輸順序,但缺點是效率低、連接耗時。
    • 為了提升資料在IP網路上的傳輸,Google 提出了實驗性網路層協定,稱為 QUIC。
    • QUIC 並不使用 TCP,而改用 UDP (User Datagram Protocol) 為底層,UDP 雖然較不安全、可能有掉封包或封包後發先至的問題,但較簡單、傳輸效率更高,能大幅減低延遲性。
    • Google並為QUIC提升安全性、並加入緩衝機制避免阻斷服務攻擊(DoS)。

CURL 作者有寫本書來介紹 HTTP/3 Protocol:HTTP/3 explained (PDF Download)

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料