HTTP/2協議
詳細描述了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完全不同的技術堆棧進行。
tags: [“HTTP/2”, “protocol”, “multiplexing”, “compression”, “server push”, “binary communication”, “QUIC”, “HTTP/3”]