HTTP / 2協議

HTTP / 2協議如何工作的詳細說明

我建議閱讀HTTP教程第一的

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

HTTP / 2比HTTP / 1.1(當時可用的最新HTTP版本)性能更高。

HTTP / 2提供的減速功能非常吸引人,因此很快就被採用-通過對Web服務器進行簡單的更改(因為HTTP / 2與HTTP / 1.1向下兼容100%),您的網站和Web應用現在可以正常工作自動更快,這反過來對您的用戶和SEO都有利(因為速度是排名的關鍵因素)。

HTTP / 2如何比HTTP / 1.1快得多?原因很多,所有的原因都是為了減少先前版本的效率低下,並引入可使瀏覽器更快地提供資源的功能。

該協議新版本的主要功能是:

  • 請求和響應多路復用
  • 有效壓縮HTTP標頭
  • 服務器推送
  • 二進制通訊

多路復用

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

TCP是在其上構建HTTP的基礎協議。 TCP停留在傳輸層,而HTTP停留在應用程序級別。

在單個TCP連接之上啟用HTTP / 2的請求/響應多路復用,允許服務器使用相同的連接來服務多個請求,從而實現更快的通信。

這是單個更改,它將對您的應用程序帶來巨大好處,並使一些優化技術過時,包括圖像精靈(用於將多個圖像合併到一個圖像中,然後使用特殊的CSS技術對其進行“多路分解”) )和域分片,這是另一種用於防止瀏覽器限製到同一域的同時連接數量的黑客。

標頭壓縮

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

服務器推送

服務器推送是一項功能,它允許向單個請求發送多個響應。由於服務器知道請求資源時,客戶端將隨後請求其他補充資源(例如CSS,JS,鏈接到頁面的圖像),因此服務器可以決定立即發送它們。

服務器無需發送HTML,而是等待瀏覽器對其進行解析並觸發其他請求以獲取資產,而是可以將其完全推送。

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

請注意,服務器推送也可能有其自身的缺點-例如,您可能會冒著不必要的風險將過多的數據發送到客戶端(可能已緩存在客戶端上),因此請謹慎使用

二進制通訊

HTTP / 1.1使用基於文本的通信。 HTTP / 2使用二進制通信,它具有一些優點,包括解析效率更高,更不易出錯且更緊湊。

未來會有什麼發展?

HTTP/3正在開發中,並將根據HTTP-QUIC,一個實驗項目。

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


更多網絡教程: