HTTP/3是第三個主要版本的HTTP協定。與其前任HTTP/1.1HTTP/2不同,在HTTP/3中,將棄用TCP協定,改為使用基於UDP協定的QUIC協定實現。[1]

此變化主要為了解決HTTP/2中存在的隊頭阻塞問題。由於HTTP/2在單個TCP連接上使用了多路復用,受到TCP擁塞控制的影響,少量的丟包就可能導致整個TCP連接上的所有流被阻塞。

QUIC(快速UDP網絡連接)是一種實驗性的網絡傳輸協定,由Google開發,該協定旨在使網頁傳輸更快。在2018年10月28日的郵寄清單討論中,互聯網工程任務組(IETF) HTTP和QUIC工作群組主席Mark Nottingham英語Mark Nottingham提出了將HTTP-over-QUIC更名為HTTP/3的正式請求,以「明確地將其標識為HTTP語意的另一個繫結……使人們理解它與QUIC的不同」,並在最終確定並發佈草案後,將QUIC工作群組繼承到HTTP工作群組。[2] 在隨後的幾天討論中,Mark Nottingham英語Mark Nottingham的提議得到了IETF成員的接受,他們在2018年11月給出了官方批准,認可HTTP-over-QUIC成為HTTP/3。[3]

2019年9月,HTTP/3支援已添加到CloudflareGoogle Chrome(Canary build)。Firefox Nightly在2019年秋季之後添加支援。[4]

2022年6月6日,IETF正式標準化HTTP/3為RFC9114[5]

實現

客戶端

More information 瀏覽器, 實現但預設禁用的起始版本 ...
HTTP/3 瀏覽器支援
瀏覽器 實現但預設禁用的起始版本 預設開啟的起始版本 備註
Chrome 穩定版 (79) 2019年12月 87[6] 2020年4月[7] 早期版本實現了QUIC的其他草案
Edge 穩定版 (79) 2019年12月 87 2020年4月 Edge 79是基於Chromium的首個版本
Firefox 穩定版 (72.0.1) 2020年1月 88[8] 2021年4月[9]
Safari 穩定版 (14.0) 2020年9月 16.4 2023年3月 Apple從Safari 16.4開始,對部分Safari用戶測試HTTP/3的支援。[10]
Close

為 QUIC and HTTP/3 實現了客戶端或伺服器邏輯的開源庫有[11]

More information 名稱, 客戶端 ...
實現HTTP/3的庫
名稱 客戶端 伺服器端 程式語言 所屬公司 倉庫連結
lsquic 支援 支援 C LiteSpeed https://github.com/litespeedtech/lsquic頁面存檔備份,存於互聯網檔案館
nghttp3 支援 支援 C https://github.com/ngtcp2/nghttp3頁面存檔備份,存於互聯網檔案館
H2O英語H2O (web server) 不支援 支援 C https://github.com/h2o/h2o頁面存檔備份,存於互聯網檔案館
cURL[12][13] 支援 不支援 C https://github.com/curl/curl頁面存檔備份,存於互聯網檔案館
MsQuic[14] 支援 支援 C Microsoft https://github.com/microsoft/msquic頁面存檔備份,存於互聯網檔案館
proxygen 支援 支援 C++ Facebook https://github.com/facebook/proxygen#quic-and-http3頁面存檔備份,存於互聯網檔案館
Cronet 支援 支援 C++ Google https://github.com/chromium/chromium/tree/main/net/quic頁面存檔備份,存於互聯網檔案館
.NET[15] 支援 支援 C# (using MsQuic)[16] Microsoft https://github.com/dotnet頁面存檔備份,存於互聯網檔案館
quic-go 支援 支援 Go https://github.com/quic-go/quic-go頁面存檔備份,存於互聯網檔案館
http3 支援 支援 Haskell https://github.com/kazu-yamamoto/http3頁面存檔備份,存於互聯網檔案館
Kwik 支援 支援 Java https://github.com/ptrd/kwik頁面存檔備份,存於互聯網檔案館
Flupke 支援 支援 Java https://bitbucket.org/pjtr/flupke頁面存檔備份,存於互聯網檔案館
aioquic 支援 支援 Python https://github.com/aiortc/aioquic頁面存檔備份,存於互聯網檔案館
quiche 支援 支援 Rust Cloudflare https://github.com/cloudflare/quiche頁面存檔備份,存於互聯網檔案館
neqo 支援 支援 Rust Mozilla https://github.com/mozilla/neqo頁面存檔備份,存於互聯網檔案館
quinn 支援 支援 Rust https://github.com/quinn-rs/quinn頁面存檔備份,存於互聯網檔案館
s2n-quic 支援 支援 Rust Amazon Web Services https://github.com/aws/s2n-quic頁面存檔備份,存於互聯網檔案館
Close

伺服器

  • 2021年6月7日,LiteSpeed Web Server(及OpenLiteSpeed)6.0.2版本發佈,並成為預設啟用HTTP/3的首個版本。[17]
  • Caddy 網頁伺服器v2.6.0(2022年9月20日發佈)預設啟用了HTTP/3。[18]
  • Nginx 自1.25.0版本(2023年5月23日發佈)開始支援HTTP/3。2020年6月,發佈了支援HTTP/3的nginx技術預覽版。[19] 2023年2月,發佈了支援HTTP/3的nginx二進制包。[20]
  • Cloudflare發佈了一個修補程式,該修補程式將quiche HTTP/3庫整合到nginx中。[21]
  • Microsoft IIS 在Windows Server 2022/Windows 11上原生支援HTTP/3。[22]
  • HAProxy 自2.6版本(2022年5月31日發佈)起支援 HTTP/3 over QUIC。[23][24]

參考資料

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.