HTTP改而使用一種基於UDP的協議。

超文本傳輸協議(HTTP)是規定瀏覽器如何與Web伺服器進行通信的網路協議,它的下一個版本將與現在使用的版本大不相同。

今天的HTTP(版本1.0、1.1和2)都基於TCP(傳輸控制協議)。TCP是作為一套核心IP(Internet協議)層的一部分而定義的,它提供了這種機制:以一種可靠、有序和校錯的方式,通過IP網路傳輸數據。「可靠」是指如果某些數據在傳輸過程中丟失(由於硬體故障、擁塞或超時),接收端可以檢測丟失問題,要求發送端重新發送丟失的數據;「有序」是指數據按照當初傳輸的順序來接收;「校錯」是指傳輸過程中的任何損壞都能檢查出來。

這些都是理想的屬性,對於HTTP之類的協議而言必不可少,但TCP是作為一種通用型的解決方案而設計的,適合需要這種可靠性的任何應用。它並不是針對HTTP適用的場景類型經過特別的調整。比如說,TCP需要在客戶端和伺服器之間進行多次往返以建立連接;使用SSL over TCP需要後續往返以建立加密連接。一種專為HTTP設計的協議可以合併這些協商,並減少往返次數,因而縮短網路延遲。

對立面

谷歌在不斷努力提高Web聯網的速度,一直在研發一種名為QUIC的實驗性網路協議,QUIC的全稱是「快速UDP互聯網連接」。QUIC放棄了TCP,改而使用一種同類協議UDP(用戶數據報協議)。UDP是TCP的「對立面」;它不可靠(從一端發送的數據可能永遠不會被另一端接收,而另一端無法知道某些數據已經丟失),而且無序(稍後發送的數據可能取代之前發送的數據,以凌亂的方式抵達接收端)。然而,UDP非常簡單,新協議常常建立在UDP的基礎上。

QUIC恢復了TCP擁有的可靠性和有序,但沒有帶來相同數量的往返和延遲。比如說,如果客戶端重新連接到伺服器,該客戶端可以通過第一個數據包發送重要的加密數據,讓伺服器能夠利用之前協商的同一種加密,重新使用原有連接,無需任何額外的往返。

互聯網工程任務組(IETF,協作設計網路協議的行業組織)一直致力於制定標準化的QUIC版本,該版本目前與谷歌的原始提案有很大差異。IETF還希望開發一個使用QUIC的HTTP版本,該版本之前名為HTTP-over-QUIC或HTTP/QUIC。然而,HTTP-over-QUIC不是HTTP/2 over QUIC,而是一種為QUIC設計的新的HTTP更新版。

因此,身兼IETF旗下HTTP工作組組長和QUIC工作組組長的馬克?諾丁漢(Mark Nottingham)提議,將HTTP-over-QUIC改名為HTTP/3,這個提議似乎已得到了廣泛接受。HTTP的下一個版本將QUIC列作一項必不可少的基本功能,那樣HTTP/3將始終使用QUIC作為其網路協議。


推薦閱讀:
相關文章