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將基於完全不同的技術堆棧。
更多網絡教程:
- WebSockets簡介
- HTTP請求如何工作
- HTTP請求標頭列表
- HTTP響應標頭列表
- HTTP與HTTPS
- 什麼是RFC?
- HTTP協議
- HTTPS協議
- HTTP請求的curl指南
- HTTP緩存
- HTTP狀態代碼列表
- 什麼是CDN?
- HTTP / 2協議
- 什麼是港口
- DNS,域名系統
- TCP協議
- UDP協議
- REST API簡介
- 如何在macOS中安裝本地SSL證書
- 如何生成本地SSL證書
- 如何為HTTPS配置Nginx
- 一個簡單的Nginx反向代理,用於從子文件夾中提供多個Node.js應用程序
- 什麼是反向代理?