skip to main content

新互聯網協定HTTP/3怎樣影響我們上網,對網站速度有甚麼影響?

於2020年10月5日更新


這次介紹屬於一點科普,就是讓你簡單的知道一下新的HTTP/3 怎樣提高互聯網的所有資料傳輸速度和安全性,和對一些自己有網站的網站主,怎樣讓自己網站升級使用HTTP/3從而提高你的網站速度

早兩代的HTTP/1 和HTTP/2有甚麼問題?

HTTP/1簡單介紹

在HTTP/1協定的規定裏每一個TCP連線只帶一個請求,而一般網頁通常都有多個資源:包括HTML,一個或多個的CSS,JS,圖片,這樣的話要請求(request)整個網頁時,每次都均需要建立很多個TCP連線才行,而建立多個TCP連線也延遲了資源下載的時間

http1傳輸原理圖

而且每個請球資源都需要排著隊去下載的,HTML下載完了,然後下載第一個CSS,再下載第一張圖,再下載第二張圖....這樣一個跟著一個去逐一完成,所以效率不高。

HTTP/2改進了甚麼,還有甚麼不足之處?

到了在2015年第二代HTTP協定推出,這時候每一個TCP連線可以帶多個請求,即現在只要建立一個連線,多個資源,HTML,CSS,JS,圖片等等,都可以幾乎是同步去下載的,他們稱這技術叫Multiplexing

http2傳輸原理圖

雖然HTTP/2已能夠減少TCP連線數量,和一次傳送多個檔案資源,但HTTP仍然存在個重要的問題。這問題就是:當傳送中的資料包可能因為網路涌擠,外面打雷呀而只要有一個導致有資料包抵達不到目的地時,也稱作資料掉包(packet loss),基於TCP連線的特性,整個連線就要等待那個/那些packet成功的再傳一次,伺服器方才能作出回應。

但事實上除了那些掉包的資料,有很多已到達伺服器方的請求是完整的,伺服器方理論上不用等待掉包的資料,它可以立刻先回應成功到達的完整請求,邊回應邊等待。

它會等待掉包的資料完全到達才回應的機制是因為HTTP/2還是使用TCP這種連線協定。TCP這種連線協定會讓全部伺服器等待那掉包成功再傳輸後才能回應,這也稱作Head-of-line blocking(HOL)

如因資料掉包而發生Head-of-line blocking的話,那HTTP/2傳輸速度其實甚至比HTTP第一代逐個逐個檔案資源傳還要慢,所以第二代的HTTP還是存在個大問題。

HTTP/3解決了HTTP/2甚麼問題?

HTTP/3是第三代的Hypertext Transfer Protocol (HTTP),是基於早前Google開發的HTTP-over-QUIC. QUIC (Quick UDP Internet Connections) 的基礎而成,業界通常直接叫"QUIC"(讀音和"Quick",快速的英文一樣)。

http 3

使用UDP連線解決Head-of-line Blocking

QUIC不再用TCP了,他採用的是UDP連線,如果同樣有packet loss,其他檔案資料傳輸請求將不會受影響,解決了Head-of-line Blocking的問題。QUIC不會將所有要傳輸的資源擠在一個連線

更快的連線建立

HTTP2依靠TLS來進行安全性檢查需要兩次來回,HTTP/3只需要一個RTT就可以,這項小改進在高延遲的網路上會提供一個明顯速度上的幫助。

更好網絡過度

以前每次上下載東西時都需要連線都要問對方的IP地址。但QUIC用了一個Connection ID去確保,去檢証那個資料包是傳送到對的地方。用Connection ID的好處是如果你要臨時切換連線,例如你用iPhone用家中的Wifi正在下載一個比較大的電影檔案,但突你要出街了,出街就要換4G了吧,換了4G後那個下載仍然可以繼續的。

HTTP/3比以前快多少

在2018 年,Google雲端平台在他們的負載平衡(load balancers 伺服器中測試QUIC,得出全球的頁面載入時間改善了8%,在高延遲的高延遲的網路地區得了13%的改善。

我能使用HTTP/3嗎?

對於看網站的用家

就很簡單,你只要使用支援HTTP3的網頁瀏覽器,例如Chrome或Firefox就可以了。

對於網站主

對於自己有網站,想讓自己網站支援HTTP/3的話難很多了,因為很多網存公司要升級很多軟硬件去配合。

我最近(2020年10月1號)剛收到Cloudflare的電郵通知我, Cloudflare HTTP3應用通知 他們大概在幾個星期後,應該就是大概2020年11月左右就會將全部在我所在的地區(香港)免費計劃的用戶網站連線全改成使用HTTP/3了。

如果你對Cloudflare有興趣,甚至有意將自己網站的DNS移去Cloudflare,這篇關於Cloudflare是甚麼,怎樣讓你得到免費的SSL Cert和CDN,提升網站速度的文章也可以看看。

已經是Cloudflare用戶,想更進一步了解的話可以到Cloudflare這篇文章看看,我上面有關於http/1和 http/2的傳輸原理圖也是從這頁引用的,裏面有更詳細的(英文)介紹。

好了,這次關於HTTP/3的科普介紹就差不多了,感謝你的觀看,拜拜~

如果你覺得本文章或影片有用,想再看更多我寫關於DIY網站開發,Google SEO內容的話,可以按下面的按鍵,填上你的電郵然後訂閱

作者 :- IT人 + 作家 + 教練 + 廚師+休閒電競選手

其他文章