HTTP/2.0
TCP 作為傳輸層 ,使用 SPDY 協議,由 Google 提出
單一網路連線
原名 Single TCP connection,解決建立連接的消耗。
連線多工(Multiplexing)
最主要的修改就是 連線多工(Multiplexing),採用二進制分幀 (Binary Framing) 處理,
單一TCP連接可以同時傳輸多個請求/回應,可並行傳輸。
其原理是將請求/回應拆成多個iframe處理,也不會發生佔用連線的問題。
何時關閉:(1) 用戶離開頁面、(2) Server主動關閉
Header 壓縮
Header 壓縮,使用了 HPACK 技術,需要在瀏覽器與伺服器端皆支持的情況下:
維持一份相同的靜態字典(Static table),包含常見標頭。
維持一份相同的動態字典(Dynamic table),可動態添加。
支持基於靜態哈夫曼碼表的哈夫曼編碼(Huffman Coding)。
儲存之前使用過重複的標頭,減少相同的流量消耗。
伺服器推送 (Server Push)
允許除了HTML畫面之外,連同需要的 CSS、Javascript、Img 推送到瀏覽器快取中,
但有以下考量:
需要額外描述哪些需要推送。
伺服器端不管瀏覽器是否存在都會推送,造成頻寬浪費。
只要session終止,資源就會被刪除。
仍遵守同源政策,且必須雙方皆確認。
優先權設計(Prioritization)
可選功能,伺服器端可決定css 或 javascript 優先傳送順序。
HTTP/2 預設埠號: 443,與HTTPS 相同,但未要求必定要 SSL 憑證。
若連線有丟包問題,HTTP 1的效率可能會高於 HTTP2。
Last updated
Was this helpful?