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 版本演進
- 1999: HTTP/1.1
- 2015: HTTP/2
- 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 提議 與 後續決議影片,詳見:
- Mark Nottingham 原始信件:Identifying our deliverables
- I'd like to suggest that -- after coordination with the HTTP WG -- we rename our the HTTP document to "HTTP/3", and using the final ALPN token "h3".
- IETF103-HTTPBIS-20181108-0900 (YouTube)
- Mark Nottingham 原始信件:Identifying our deliverables
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)
相關網頁
- HTTP/3 來啦,你還在等什麼?趕緊瞭解一下
- 下一代 HTTP/3 協議將棄用 TCP 改用 QUIC
- HTTP-over-QUIC 正式成為 HTTP/3 協議
- HTTP-over-QUIC to be renamed HTTP/3 | ZDNet
- Chromium Blog: A QUIC update on Google’s experimental transport</a >
- The Road to QUIC CloudFlare 已經在使用 QUIC 了
- Google 的新網路協定 QUIC,讀網頁速度會更快
- QUIC - Traffic Server - Apache Software Foundation
- 怎麼把網站升級到QUIC以及QUIC特性分析
- Taking a Long Look at QUIC
- Web Server 快速啟用 QUIC Protocol
- CURL 作者之前寫得 HTTP/2 的書:HTTP/2 explained - 這邊還有 HTTP/2 速度的 Demo 測試等等