詳細描述了HTTP/2協議的工作原理。

我建議先閱讀HTTP教程

HTTP/2是當前版本的HTTP協議。它由IETF(互聯網工程任務組)委員會於2015年發布,由於其獨特的功能,目前被廣泛采用。

HTTP/2比上一個版本的HTTP 1.1要更高效。在當時,HTTP/2的速度提升如此引人注目,以至於它很快就被廣泛采用。通過對Web服務器進行簡單的更改(因為HTTP/2與HTTP 1.1完全向下兼容),您的網站和Web應用程序現在自動運行得更快,這對用戶和SEO都有益處(因為速度是排名的關鍵因素)。

HTTP/2如何比HTTP/1.1更快?原因有很多,都是為了減少上一個版本的低效性,並引入能夠使瀏覽器更能快速提供資源的功能。

新版本協議的主要功能有:

  • 請求和響應多路徑
  • HTTP標頭的高效壓縮
  • 服務器推送
  • 二進制通信

多路徑

在HTTP/2之前,每個TCP連接一次只能提供一個響應。

TCP是HTTP的底層協議。TCP位於傳輸層,而HTTP位於應用層。

HTTP/2在單個TCP連接上實現了請求/響應多路徑,允許服務器使用同一個連接提供多個請求,從而實現更快的通信。

這是一個對您的應用程序很有益的單一變化,使得一些優化技術變得過時,包括圖像合併(將多個圖像合併為一個,然後使用特殊的CSS技術進行“解多路”)和域名分片,另一種防止瀏覽器對同一域名的同時連接數量限制的技巧。

標頭壓縮

頁面和資源上的HTTP標頭可能會變得很大,考慮到正常使用Cookie和其他標頭值。壓縮使得HTTP的佔用空間更輕,減少了客戶端和服務器之間交換的數據量。

服務器推送

服務器推送是一種功能,允許將多個響應發送到單個請求。由於服務器知道在請求資源時,客戶端將要求其他補充資源(如CSS、JS、頁面上的圖像),因此服務器可以決定立即發送這些資源。

服務器可以還可以決定發送可能在未來請求中需要的資源,預先優化下一頁的加載並將其放在客戶端缓存中。

請注意,服務器推送也可能有一些缺點-例如,可能會向客戶端發送未必需要的過多數據(可能已在客戶端緩存中可用),因此需要謹慎使用。

二進制通信

HTTP/1.1使用基於文本的通信。HTTP/2使用二進制通信,這有一些優點,包括更容易解析、更少的錯誤以及更緊湊的格式。

未來的發展方向是什麼?

HTTP/3正在開發中,將從實驗性項目HTTP-over-QUIC進行調整。

QUIC是一種基於UDP(而不是TCP)的傳輸層協議,這意味著HTTP/3將基於與HTTP/2和HTTP/1.x完全不同的技術堆棧進行。