http2問題以及http3的出現

2021-10-19 09:37:42 字數 849 閱讀 2230

http2的問題:

隊頭阻塞

http2 解決http隊頭阻塞問題,但是沒有解決tcp隊頭阻塞問題

http1.1引入了持久化連線:在乙個tcp連線上可以傳送多個http的請求和相應,減少建立連線和關閉連線的消耗和延遲

http1.1在持久化連線上支援請求管道,就是在http響應到達之前,可以將多條請求放入佇列,當第一條http請求通過網路流向伺服器時,第二條和第三條請求也開始傳送。再有網路延遲的情況下會出現一些問題,服務端必須按照與請求的順序回送http響應,,如果響應返回發生延遲,那麼後續的響應都會被延遲。整個就是http隊頭阻塞問題。

http2.0廢棄了管道化方式,而是引入了幀、訊息 資料流概念  客戶端和伺服器可以把http訊息分解為互不依賴的幀,然後亂序傳送,最後再將訊息在另外一端重新組合。

因為沒有順序,所以就不會出現阻塞問題

http2仍然會存在tcp頭阻塞的問題

tcp傳輸過程中會把資料拆分為乙個個按照順序排列的資料報,這些資料報通過網路傳輸到接收端,接收端在按照順序將這些資料報組合成原始資料,這樣就完成了資料傳輸。

如果其中某乙個資料報沒有按照順序到達,接收端會一直保持連線等待資料報的返回,這時候就會阻塞後續的請求,這個就是tcp的阻塞問題。

http1.1管道持久化乙個網域名稱 可以有6個 tcp連線 http2.0  同乙個網域名稱只能用乙個tcp連線  http2.0tcp隊頭阻塞造成的影響更大。

tcp的握手 三次握手  4次揮手

網路延遲rtt 乙個請求從客戶端發出到服務端,再從伺服器返回到客戶端,rtt反應網路的效能

tcp的三次握手 需要消耗1.5 個 rtt

http3.0 出現 解決 tcp隊頭阻塞的問題,使用udp協議 也叫quic

公升級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 傳輸層,現有的所有服務端應用均...