http2多路復用解決的問題,由於瀏覽器的限制訪問**資源的時候瀏覽器在同乙個網域名稱下最多開啟6個執行緒,這樣如果前幾個執行緒執行比較慢的任務或者需要等待伺服器端響應,後面的資源就被阻塞住了 .以往的做法是把靜態資源如 css等檔案放在不同的網域名稱下以提高頁面載入速度.
另外一點就是明顯減少了tcp連線的3次握手4次揮手,和ssl(tsl)協議中反覆的client hello servier hello與證書傳輸的浪費.
插入待補充
這張就可以描述多路復用的情況,同一網域名稱下所有訪問都是從同乙個tcp連線中走,ssl的資料報是併發的,原來http1.1的機制是client發出請求後必須等到伺服器響應後才能發出第二個請求.現在所有請求都是同時傳送的不需要等待.另外在http2包中還有伺服器響應優先順序的設定位.
http2採用二進位制分幀,把header與data分成二進位制幀
下面分析一下為什麼http2協議可以多路雙向併發了.
通過wireshark抓包可以看到
1.傳送的是headers包
2.傳送的headers data包
length欄位分配在前三個位元組標示整個流的長度
type欄位標示流的型別 分別為 headers ,data ,magic,settings 如果比較小的話headers與data可以放在乙個包裡.
magic 第一次傳輸之前client端都會傳送magic讓伺服器端確認使用http2協議
3.stream identifier 4個位元組 標誌同步傳送中的包屬於哪乙個請求 通過這個伺服器判斷是哪個請求的資料.
http2多路復用的簡單介紹
在 http 1 中,每次請求都會建立一次http連線,也就是我們常說的3次握手4次揮手,這個過程在一次請求過程中占用了相當長的時間,即使開啟了 keep alive 解決了多次連線的問題,但是依然有兩個效率上的問題 http 2的多路復用就是為了解決上述的兩個效能問題。在 http 2 中,有兩個...
網路技術原理之多路復用技術
特點是 高速通道根據時間劃分成多個時隙供多個低速通道輪流使用,在乙個時隙內,只能有乙個低速通道占有高速通道的資源。訊號分割的參量是訊號占用的時間,故要使復用的各路訊號在時間上互不重疊,在傳輸時把時間分成小的時隙,每一時隙由復用的乙個訊號占用。首先,傳輸 的可用頻寬被劃分為多個分離的通道,使用者在分配...
公升級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...