什么是 HTTP/3,它為什么重要?
在研究互聯(lián)網(wǎng)及其背后的技術(shù)時(shí),您可能會(huì)遇到這個(gè)術(shù)語(yǔ):HTTP。HTTP,或超文本傳輸協(xié)議,是網(wǎng)絡(luò)的支柱,是傳輸文本數(shù)據(jù)的通用協(xié)議。毫無(wú)疑問(wèn),您使用過(guò)它,因?yàn)槟私?HTTP 的網(wǎng)站使用的是 HTTP。
介紹
HTTP 簡(jiǎn)史
發(fā)布的第一個(gè) HTTP 版本是 HTTP/0.9。Tim Berners-Lee 于 1989 年創(chuàng)建了它,并于 1991 年將其命名為 HTTP/0.9。HTTP/0.9 功能是有限的,只能做基本的事情。除了網(wǎng)頁(yè)之外,它無(wú)法返回任何內(nèi)容,并且不支持 cookie 和其他現(xiàn)代功能。1996 年,HTTP/1.0 發(fā)布,帶來(lái)了新功能,如 POST 請(qǐng)求和發(fā)送網(wǎng)頁(yè)以外的內(nèi)容的能力。但是,與今天相比,還有很長(zhǎng)的路要走。HTTP / 1.1在1997年發(fā)布,并進(jìn)行了兩次修訂,一次是在1999年,一次是在2007年。它帶來(lái)了許多主要的新功能,例如cookie和連接仍然存在。最后,在 2015 年,HTTP/2 發(fā)布并允許提高性能,使諸如服務(wù)器發(fā)送事件和一次發(fā)送多個(gè)請(qǐng)求的能力成為可能。HTTP/2 仍然是新的,只有不到一半的網(wǎng)站使用。
HTTP/3:最新版本的 HTTP
HTTP/3或HTTP over QUIC,改變了HTTP很多。HTTP 傳統(tǒng)上是通過(guò) TCP(傳輸控制協(xié)議)完成的。但是,TCP于1974年互聯(lián)網(wǎng)開(kāi)始發(fā)展。當(dāng) TCP 最初創(chuàng)建時(shí),它的作者無(wú)法預(yù)測(cè)網(wǎng)絡(luò)的增長(zhǎng)。由于 TCP 已過(guò)時(shí),因此 TCP 在一段時(shí)間內(nèi)限制了 HTTP 的速度和安全性。現(xiàn)在,由于 HTTP/3,HTTP 不再受限制。HTTP/3 沒(méi)有使用 TCP,而是使用了一種由 Google 于 2012 年開(kāi)發(fā)的新協(xié)議,稱(chēng)為 QUIC(發(fā)音為“quick”)。這為 HTTP 引入了許多新功能。
鏈接:https://www.linuxmi.com/http-3-http-over-quic.html
特征
更快的請(qǐng)求多路復(fù)用
照片來(lái)自Unsplash的PAUL SMITH
在 HTTP/2 之前,瀏覽器一次只能向服務(wù)器發(fā)送一個(gè)請(qǐng)求。這使得網(wǎng)站加載速度明顯變慢,因?yàn)闉g覽器一次只加載一項(xiàng)資源,如 CSS 或 JavaScript。HTTP/2 引入了一次加載多個(gè)資源的能力,但 TCP 并非為此而生。如果請(qǐng)求之一失敗,TCP將使瀏覽器重做所有請(qǐng)求。由于TCP在HTTP/3中已被刪除并由QUIC代替,因此HTTP/3解決了此問(wèn)題。使用 HTTP/3,瀏覽器只需要重做失敗的請(qǐng)求。因此,HTTP/3 更快、更可靠。
更快的加密
照片來(lái)自Unsplash的Franck
HTTP/3 優(yōu)化了允許瀏覽器 HTTP 請(qǐng)求被加密的“握手”。QUIC 將初始連接與 TLS 握手相結(jié)合,使其默認(rèn)安全且速度更快。
鏈接:https://www.linuxmi.com/http-3-http-over-quic.html
執(zhí)行
標(biāo)準(zhǔn)化
在撰寫(xiě)本文時(shí),HTTP/3 和 QUIC 尚未標(biāo)準(zhǔn)化。有一個(gè) IETF工作組目前正在制定標(biāo)準(zhǔn)化 QUIC 的草案。HTTP/3 的 QUIC 版本略有修改,使用 TLS 代替 Google 的加密,但具有相同的優(yōu)點(diǎn)。
瀏覽器支持
目前,由于谷歌創(chuàng)建了 QUIC 協(xié)議和 HTTP over QUIC 的提議,Chrome 默認(rèn)支持 HTTP/3。Firefox 也支持 88+ 版本中沒(méi)有標(biāo)志的協(xié)議。Safari 14支持HTTP/3,但前提是啟用了實(shí)驗(yàn)性功能標(biāo)志。
瀏覽器支持 HTTP/3(來(lái)源:Can I Use)
Serverless/CDN 支持
到目前為止,只有部分服務(wù)器支持 HTTP/3,但它們的份額正在增長(zhǎng)。Cloudflare 是除 Google 之外最早支持 HTTP/3 的公司之一,因此它們的無(wú)服務(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 的有趣(雖然是實(shí)驗(yàn)性的)方法。Cloudflare、Fastly 和 Google Cloud 也有良好的 HTTP/3 支持,并且更適合生產(chǎn)。
總結(jié)
HTTP/3 仍然是對(duì) HTTP 的一個(gè)非常實(shí)驗(yàn)性的更新,它很可能會(huì)改變。但是,超過(guò)一半的用戶(hù)支持當(dāng)前形式的 HTTP/3。如果您準(zhǔn)備更新您的實(shí)現(xiàn),那么它可以是一個(gè)受歡迎的性能提升。我希望你喜歡閱讀并從這篇文章中學(xué)到一些東西。
相關(guān)鏈接:
- https://w3techs.com/technologies/details/ce-http2
- https://quicwg.org/
- https://caniuse.com/http3
- https://quic.cloud