關於http2的學習

2022-07-21 13:30:18 字數 849 閱讀 6194

一、http1.1 的缺陷

1、header 頭部過大

2、明文傳輸

3、不支援伺服器推送

二、http2 的新特性

http2 是基於 spdy 協議的,主要的特性有:

1、壓縮header

http2 中沒有採用原來的壓縮演算法,開發有專門的 "pack" 演算法來壓縮請求和響應頭元資料,這種壓縮方式可以達到 50%-90% 的高壓縮率。

2、二進位制傳輸

http2 採用二進位制格式傳輸資料,而非 http1.x 裡純文字形式的報文 ,二進位制協議解析起來更高效。 http2 將請求和響應資料分割為更小的幀,並且它們採用二進位制編碼。

http2 中,同網域名稱下所有通訊都在單個連線上完成,該連線可以承載任意數量的雙向資料流。每個資料流都以訊息的形式傳送,而訊息又由乙個或多個幀組成。多個幀之間可以亂序傳送,根據幀首部的流標識可以重新組裝。

3、多路復用

在 http2 中引入了多路復用的技術。多路復用很好的解決了瀏覽器限制同乙個網域名稱下的請求數量的問題,同時也接更容易實現全速傳輸,畢竟新開乙個 tcp 連線都需要慢慢提公升傳輸速度。(chrome 限制在同一網域名稱下最多同時建立6個 tcp 連線)

在 http2 中,有了二進位制分幀之後,http2 不再依賴 tcp 鏈結去實現多流並行了,在 http2 中,

4、伺服器推送

在 http2 中伺服器不再是完全被動地響應請求,也可以新建「流」主動向客戶端傳送訊息。

當然,服務端可以主動推送,客戶端也有權利選擇是否接收。如果服務端推送的資源已經被瀏覽器快取過,瀏覽器可以通過傳送rst_stream幀來拒收。主動推送也遵守同源策略,也就是說,伺服器不能隨便將第三方資源推送給客戶端,而必須是經過雙方確認才行。

公升級HTTP 2協議

首先只有使用https協議的站點可以公升級http 2協議 nginx如果想要公升級http 2需要滿足以下要求 nginx版本要高於1.9.5 with http ssl module 跟 with http v2 module 必帶 因為http2.0協議需要使用https協議。yum inst...

http2的除錯方法

http2怎麼除錯?關於http2的除錯工具 說到這裡,個人喜歡chrome和firefox。直接上圖,不想說太多,1.chrome chrome從40版本開始支援http2,所以無需任何外掛程式安裝。訪問普通的https如圖所示 訪問http2如圖所示,會多一些首部資訊 chrome net in...

HTTP 2的前世今生

前世 的前生是 google 開發的基於 tcp的傳輸層協議 spdy。spdy是對http 協議的增強。用以最小化網路延遲,提公升網路速度,優化使用者的網路使用體驗。spdy 並不用於取代 它只是修改了 的請求與應答在網路上傳輸的方式 這意味著只需增加乙個 spdy 傳輸層,現有的所有服務端應用均...