Http長連線和管線化及Http2 0

2021-08-04 10:53:25 字數 971 閱讀 1667

我好像上了個假的網路!

http1.1規定了預設保持長連線(http persistent connection ,也有翻譯為持久連線),資料傳輸完成了保持tcp連線不斷開(不發rst包、不四次握手),等待在同網域名稱下繼續用這個通道傳輸資料;持久連線可以設定過期時間,也可以不設定。

1,同乙個客戶端可以使用這個長連線處理其他求情,避免http重新鏈結和斷開所消耗的時間。

然後在請求頭中設定connection:keep-alive,為什麼響應之後,還是斷開了呢?原來connection字段只有服務端設定才有效。

keep-alive: timeout=60連線建立之後,空閒時間超過60秒之後,就會失效

connection:keep-alive連線永久有效

管線化也可以理解為流水線。在長連線的基礎上,將客戶端的其他請求都交給這乙個連線去處理(http/1.0不支援)。

長連線:某個連線訊息的傳遞類似於

請求1 -> 響應1 -> 請求2 -> 響應2

管線化:某個連線上的訊息變成了類似這樣

請求1 -> 請求2 -> 請求3 -> 響應1 -> 響應2 -> 響應3

http的keep-alive是為了維持連線,以便復用連線,以減少tcp連線建立次數。

tcp的 keep-alive是檢測tcp連線狀況的機制。當網路兩端建立了tcp連線之後,空閒時,伺服器就會向客戶端傳送偵測包,直到收到對方的回答(ack包),如果一直不回答,則會丟棄該tcp連線。tcp連線預設閒置時間是2小時,一般設定為30分鐘足夠了

http2.0 同個網域名稱併發請求,半雙工變成全雙工

HTTP長連線和WebSocket長連線的區別

要理解http長連線和websocket長連線的區別,首先要理解一下什麼是http的長連線和短連線。首先需要消除乙個誤解 http協議是基於請求 響應模式的,因此客戶端請求後只要服務端給了響應,本次http請求就結束了,沒有長連線這一說。那麼自然也就沒有短連線這一說了。所謂的http分為長連線和短連...

HTTP 長連線和短連線

1.http協議與tcp ip協議的關係 http的長連線和短連線本質上是tcp長連線和短連線。http屬於應用層協議,在傳輸層使用tcp協議,在網路層使用ip協議。ip協議主要解決網路路由和定址問題,tcp協議主要解決如何在ip層之上可靠的傳遞資料報,使在網路上的另一端收到發端發出的所有包,並且順...

HTTP的長連線和短連線

http的長連線和短連線本質上是tcp長連線和短連線。http屬於應用層協議.短連線 瀏覽器和伺服器每進行一次http操作,就建立一次連線,但任務結束就中斷連線。長連線 當乙個網頁開啟完成後,客戶端和伺服器之間用於傳輸http資料的 tcp連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使...