HTTP/3 官宣,什么是 HTTP/3

介紹

HTTP 簡史

發(fā)布的第一個 HTTP 版本是 HTTP/0.9。Tim Berners-Lee 于 1989 年創(chuàng)建了它,并于 1991 年將其命名為 HTTP/0.9。HTTP/0.9 功能是有限的,只能做基本的事情。除了網(wǎng)頁之外,它無法返回任何內(nèi)容,并且不支持 cookie 和其他現(xiàn)代功能。1996 年,HTTP/1.0 發(fā)布,帶來了新功能,如 POST 請求和發(fā)送網(wǎng)頁以外的內(nèi)容的能力。但是,與今天相比,還有很長的路要走。HTTP / 1.1在1997年發(fā)布,并進(jìn)行了兩次修訂,一次是在1999年,一次是在2007年。它帶來了許多主要的新功能,例如cookie和連接仍然存在。最后,在 2015 年,HTTP/2 發(fā)布并允許提高性能,使諸如服務(wù)器發(fā)送事件和一次發(fā)送多個請求的能力成為可能。HTTP/2 仍然是新的,只有不到一半的網(wǎng)站使用。


HTTP/3:最新版本的 HTTP

HTTP/3或HTTP over QUIC,改變了HTTP很多。HTTP 傳統(tǒng)上是通過 TCP(傳輸控制協(xié)議)完成的。但是,TCP于1974年互聯(lián)網(wǎng)開始發(fā)展。當(dāng) TCP 最初創(chuàng)建時,它的作者無法預(yù)測網(wǎng)絡(luò)的增長。由于 TCP 已過時,因此 TCP 在一段時間內(nèi)限制了 HTTP 的速度和安全性?,F(xiàn)在,由于 HTTP/3,HTTP 不再受限制。HTTP/3 沒有使用 TCP,而是使用了一種由 Google 于 2012 年開發(fā)的新協(xié)議,稱為 QUIC(發(fā)音為“quick”)。這為 HTTP 引入了許多新功能。
HTTP 和 QUIC RFC 的關(guān)系如圖:


HTTP 協(xié)議之間的關(guān)系和組成圖

HTTP3優(yōu)點

更快的請求多路復(fù)用

HTTP/2 和 HTTP/3 之間的主要區(qū)別在于它們使用的傳輸協(xié)議。
在 HTTP/2 之前,瀏覽器一次只能向服務(wù)器發(fā)送一個請求。這使得網(wǎng)站加載速度明顯變慢,因為瀏覽器一次只加載一項資源,如 CSS 或 JavaScript。HTTP/2 引入了一次加載多個資源的能力,但 TCP 并非為此而生。如果請求之一失敗,TCP將使瀏覽器重做所有請求。
HTTP/3 使用了 QUIC 新協(xié)議來代替 TCP 協(xié)議,使用 HTTP/3,瀏覽器只需要重做失敗的請求。因此,HTTP/3 更快、更可靠。
同時QUIC 基于 UDP 開發(fā), 和 TCP 不一樣是, UDP 并不需要三次握手, 結(jié)合 TLS1.3, 也為 0-RTT 加密傳輸帶來了可能, HTTP/3 還帶來了新的頭部壓縮算法QPACK。


更快的加密

HTTP/3 優(yōu)化了允許瀏覽器 HTTP 請求被加密的“握手”。QUIC 將初始連接與 TLS 握手相結(jié)合,使其默認(rèn)安全且速度更快。
QUIC一如既往是安全的,它沒有明文版本,想要建立一個QUIC連接,就必須通過TLS 1.3來進(jìn)行加密保證安全。加密可以避免協(xié)議僵化等攔截和特殊處理。這也使QUIC具有了Web用戶所期望的所有HTTPS安全特性。
QUIC在加密協(xié)商前,只有很少的初始握手報文會以明文形式發(fā)送。

標(biāo)準(zhǔn)化

IETF(互聯(lián)網(wǎng)工程任務(wù)組)宣布了 HTTP/3 標(biāo)準(zhǔn),編號為 RFC 9114。RFC Editor 頁面顯示,目前 RFC 9114 處于 “提案標(biāo)準(zhǔn) (PROPOSED STANDARD)” 狀態(tài),尚未成為正式標(biāo)準(zhǔn)。

瀏覽器支持

目前,由于谷歌創(chuàng)建了 QUIC 協(xié)議和 HTTP over QUIC 的提議,Chrome 默認(rèn)支持 HTTP/3。Firefox 也支持 88+ 版本中沒有標(biāo)志的協(xié)議。Safari 14支持HTTP/3,但前提是啟用了實驗性功能標(biāo)志。

Serverless/CDN 支持

到目前為止,只有部分服務(wù)器支持 HTTP/3,但它們的份額正在增長。Cloudflare 是除 Google 之外最早支持 HTTP/3 的公司之一,因此它們的無服務(wù)器功能和 CDN 符合 HTTP/3 標(biāo)準(zhǔn)。此外,Google Cloud 和 Fastly 符合 HTTP/3 標(biāo)準(zhǔn)。不幸的是,Microsoft Azure CDN 和 AWS CloudFront 目前似乎不支持 HTTP/3。如果您想嘗試 HTTP/3,QUIC.Cloud是一種在您的服務(wù)器前設(shè)置緩存 HTTP/3 CDN 的有趣(雖然是實驗性的)方法。Cloudflare、Fastly 和 Google Cloud 也有良好的 HTTP/3 支持,并且更適合生產(chǎn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容