1.多路復用
在 HTTP/1.1 協議中 「瀏覽器客戶端在同一時間,針對同一域名下的請求有一定數量限制。超過限制數目的請求會被阻塞」。
image.png
這也是為何一些站點會有多個靜態資源 CDN 域名的原因之一。
而 HTTP/2 的多路復用(Multiplexing) 則允許同時通過單一的 HTTP/2 連接發起多重的請求-響應消息。
2.首部壓縮(Header Compression)
HTTP/1.1并不支持 HTTP 首部壓縮,為此 SPDY 和 HTTP/2 應運而生, SPDY 使用的是通用的
DEFLATE 算法,而 HTTP/2 則使用了專門為首部壓縮而設計的 HPACK 算法。
image.png
3.服務端推送(Server Push)
服務端推送是一種在客戶端請求之前發送數據的機制。在 HTTP/2 中,服務器可以對客戶端的一個
請求發送多個響應。Server Push 讓 HTTP1.x 時代使用內嵌資源的優化手段變得沒有意義;如果一
個請求是由你的主頁發起的,服務器很可能會響應主頁內容、logo 以及樣式表,因為它知道客戶端
會用到這些東西。這相當于在一個 HTML 文檔內集合了所有的資源,不過與之相比,服務器推送還
有一個很大的優勢:可以緩存!也讓在遵循同源的情況下,不同頁面之間可以共享緩存資源成為可
能。