網絡的發展永遠不會停滞不前。随着新技術的發展,消費(fèi)者行爲發生(shēng)變化,支撐互聯網的核心基礎設施被迫适應。
HTTP 協議——用于在客戶端和服務器之間傳輸數據——已經經曆了許多不同的叠代,所有這些都通過新的和令人興奮的特性增強了核心功能。
在 1997 年采用 HTTP/1.1 和 2015 年采用HTTP/2時隔 18 年之後,發展步伐加快,僅在三年後提交了 HTTP/3提案草案。
什麽是 HTTP/3?
HTTP/3 的核心是對用于管理文件傳輸的底層傳輸層的徹底改造。
它代表了從 TCP(傳輸控制協議)到 UDP(用戶數據報協議)的轉變,解決了幾個 TCP 限制并提高了用戶的性能和安全性。
盡管它仍在等待發布前的最終審查,但73%的網絡浏覽器已經支持該協議。
一(yī)旦 Safari 将其作爲核心功能,這個數字将顯着增加;目前,它是實驗性的,必須通過開(kāi)發者菜單啓用。
HTTP/3 協議已被 25% 的前 1000 萬網站使用。
HTTP/3 相對于 HTTP/2 和 HTTP/1 的主要優勢是什麽?
要充分(fēn)了解 HTTP/3 的優勢,有必要回過頭來了解 HTTP/1.1 的工(gōng)作原理,以及 HTTP/2 旨在解決的問題。
發送時,文件(HTML、JS、CSS、圖像等)被分(fēn)解成更小(xiǎo)的、單獨的數據包,數據随着時間的推移而傳輸。
HTTP/1.1 旨在爲每個文件提供自己的連接。随着網站變得越來越複雜(zá),需要更多的文件來加載每個頁面。
浏覽器限制了可用的并行連接數量,從而造成瓶頸并減慢(màn)加載時間。這導緻了一(yī)些必要的變通方法來最大(dà)化性能,例如域分(fēn)片和圖像精靈。
通過引入多路複用,HTTP/2 解決了由連接限制引起的問題,允許通過單個連接傳輸多個文件。
另一(yī)個主要改進是引入了更好的标頭壓縮,以及一(yī)些在實踐中(zhōng)證明不太成功的其他功能。
然而,這些改進并沒有解決 TCP 協議的所有問題。
TCP按時間順序傳輸數據包,這意味着如果丢失了數據包,則整個連接将保持不變,直到成功接收到數據包。這個問題,被稱爲線頭阻塞,否定了多路複用的一(yī)些好處。
TCP 的另一(yī)個挑戰是它完全脫離(lí)了 TLS 協議。這是設計使然,因爲網站可能既安全又(yòu)不安全。
因此,服務器和客戶端在傳輸數據之前必須進行多次往返來協商(shāng)連接。
HTTP/3 如何解決這些問題?
通過從 TCP 遷移到 UDP,HTTP/3 引入了三個使其與 HTTP/1.1 和 HTTP/2 不同的主要特性。
獨立字節流
HTTP/3 通過爲單個文件引入獨立的字節流來解決行頭阻塞問題。在重新發送丢失的數據包時,僅阻止單個流的數據,而不是整個連接。
爲了進一(yī)步說明這一(yī)點,值得回想一(yī)下(xià)Tom Anthony在他關于 HTTP/2(現已更新爲HTTP/3)的開(kāi)創性演示中(zhōng)使用的奇妙的卡車(chē)類比。
基本前提是,使用 HTTP/1.1,最終會有多輛卡車(chē)在同一(yī)條道路上排隊(連接)。
HTTP/3 簡介,2022 年 4 月
相比之下(xià),HTTP/2 允許多輛卡車(chē)同時在同一(yī)車(chē)道上。
HTTP/3 簡介,2022 年 4 月
不幸的是,使用 TCP 時,如果卡車(chē)熄火(huǒ),整條道路都會被阻塞,直到卡車(chē)再次開(kāi)始行駛。
HTTP/3 簡介,2022 年 4 月
使用 HTTP/3 和 UDP,其他卡車(chē)可以繞過它。
TLS 集成
通過将 TLS 1.3 并入 HTTP/3 本身,而不是讓兩個不同的協議獨立運行,隻需一(yī)次握手即可将往返次數從兩次(或如果使用 TLS 1.2,則爲三次)減少到一(yī)次。
這一(yī)變化意味着更快、更安全的用戶連接。
此更改的一(yī)個後果是 HTTP/3 隻能在安全站點上使用,因爲 TLS 和 UDP 緊密交織在一(yī)起。有趣的是,HTTP/2 并非如此,從技術上講,它可以在不安全的站點上使用——盡管沒有一(yī)個主要的浏覽器允許您這樣做。
連接遷移
HTTP/3 不是使用 IP 來路由數據包,而是使用連接 ID。
通過這樣做,它可以處理網絡更改而無需重新建立連接。
這在移動優先的世界中(zhōng)非常有利,用戶經常在 wifi 和蜂窩網絡之間切換,無論是在速度還是連接穩定性方面。
回到我(wǒ)(wǒ)們的卡車(chē)類比,這就像來到一(yī)個路口,必須再次排隊才能繼續前進到下(xià)一(yī)條道路。
使用 HTTP/3,有一(yī)條支路,允許您在兩者之間無縫交換。
HTTP/3 有什麽缺點嗎(ma)?
盡管 HTTP/3 有一(yī)些明顯的性能優勢,但它的批評者強調了幾個缺點。
首先,該協議将爲快速連接的用戶提供有限的好處,最慢(màn)的 1% 到 10% 的用戶獲得了大(dà)部分(fēn)收益。
但是,就 Core Web Vitals 而言,這實際上可能是非常有益的。
CWV 分(fēn)數是全球性的,因此完全有可能被遙遠地理位置的特定用戶子集拉低。
同樣,在移動優先的世界中(zhōng),即使設備速度快且地理位置接近的用戶也可能會遇到暫時的網絡問題,這可能會對 CWV 産生(shēng)不利影響。
您的用戶的移動性越高,産生(shēng)影響的可能性就越高。
另一(yī)個抱怨是切換到 HTTP/3 需要相當大(dà)的服務器升級,因爲它從根本上改變了傳輸層的工(gōng)作方式。
此外(wài),UDP 的使用還引入了更高的 CPU 要求,這可能會給服務器帶來更大(dà)的壓力。
這兩個論點都是公平的,但目前正在優化 CPU 使用率。
此外(wài),正如我(wǒ)(wǒ)們将在下(xià)面的實施部分(fēn)中(zhōng)看到的,許多 CDN 提供商(shāng)已經提供了相對簡單的 HTTP/3 解決方案,可以輕松地部署在邊緣。
HTTP/3 對 SEO 重要嗎(ma)?
雖然百度自2020 年起就支持 HTTP/2 ,但現在有一(yī)半的網址是使用該協議抓取的,但它目前不支持 HTTP/3。
HTTP/2 僅在這樣做有明顯好處時使用,即,當使用 HTTP/2 會爲服務器和搜索機器人節省大(dà)量資(zī)源時。
這無疑會随着時間的推移繼續增加,但鑒于 HTTP/2 協議的發布和搜索機器人支持之間的五年差距,HTTP/3 可能還有一(yī)段路要走。
也就是說,實施 HTTP/3 仍可能對 SEO 産生(shēng)間接影響——如果支持該協議會帶來更好的SEO得分(fēn)。
升級您的服務器基礎架構以支持 HTTP/3(或者,就此而言,HTTP/2)隻是您可以用來确保您的網站盡可能高性能的衆多潛在增強功能之一(yī)。
擁有一(yī)個高性能網站的好處,包括降低跳出率、增加網站停留時間和更高的轉化率,提升SEO效果。
如何檢查網站是否支持 HTTP/3
如果您不确定某個網站是否支持 HTTP/3,那麽您可以使用以下(xià)在線工(gōng)具進行檢查:https://http3check.net/或者,Chrome 和 Firefox 都在開(kāi)發工(gōng)具網絡選項卡中(zhōng)顯示每個請求的協議。
這些字段默認不可見,但可以通過右鍵單擊導航欄并選擇“協議”來啓用。HTTP/3 請求标記爲“h3”。
也可以使用命令行和curl進行檢查。
curl --http3 https://website.com/
由于許多網站隻會爲頁面資(zī)源(通常托管在 CDN 上的那些)啓用 HTTP/3,因此使用開(kāi)發工(gōng)具将提供更準确的圖片并讓您更好地評估可用的機會。
如何實現 HTTP/3?
到目前爲止,啓用 HTTP/3 的最簡單方法是通過CDN。
包括Cloudflare、Google Cloud和Fastly在内的幾家主要供應商(shāng) 已經支持該協議。
根據 W3Techs 的數據,前 1000 萬個網站中(zhōng)有22%使用 Cloudflare,您可以在儀表闆中(zhōng)輕松啓用 HTTP/3。
如果您不确定要處理的技術堆棧,請使用 Builtwith 或 Wappalyzer 并查看是否列出了 CDN。
如果一(yī)個站點正在使用 Cloudflare,并且所有請求都是 HTTP/2,那麽您已經找到了一(yī)個簡單而有效的建議。
如果無法通過 CDN 實現,則需要更改服務器。
根據所使用的語言,可以使用各種實現,但 Web 服務器尚未普遍采用這些實現。
因此,實現 HTTP/3 的可行性可能取決于您使用的軟件類型。
服務器 HTTP/3 支持,2022 年 4 月
不幸的是,32%的 Web 服務器使用 Apache,但由于開(kāi)發資(zī)源有限,它尚未開(kāi)始提供支持。
同樣,由于缺少OpenSSL 支持,在 Node 上啓用該協議需要一(yī)種解決方法。
Windows (IIS) 是最新提供本機協議的提供商(shāng),但它需要Windows Server 2022 和 Windows 11 或更高版本。
總結
HTTP/3 是 Web 向前邁出的又(yòu)一(yī)重要一(yī)步,它将提供急需的性能提升以支持其持續發展。
作爲 SEO 和網絡營銷專業人士,我(wǒ)(wǒ)們應該知(zhī)道該協議在即将發布之前帶來的好處,因此我(wǒ)(wǒ)們可以開(kāi)始推薦它的使用,并讓我(wǒ)(wǒ)們的用戶在未來幾年獲得好處。