Http怎麼處理長連線。

2021-08-18 20:23:14 字數 767 閱讀 9086

在http1.0和http1.1協議中都有對長連線的支援。其中http1.0需要在request中增加connection: keep-alive header才能夠支援,而http1.1預設支援。

http1.0請求與服務端的互動過程:

(1)客戶端發出帶有包含乙個header:」connection: keep-alive「的請求

(2)服務端接收到這個請求後,根據http1.0和」connection: keep-alive「判斷出這是乙個長連線,就會在response的header中也增加」connection: keep-alive「,同時不會關閉已建立的tcp連線.

(3)客戶端收到服務端的response後,發現其中包含」connection: keep-alive「,就認為是乙個長連線,不關閉這個連線。並用該連線再傳送request.轉到(1)

http1.1請求與服務端的互動過程:

(1)客戶端發出http1.1的請求

(2)服務端收到http1.1後就認為這是乙個長連線,會在返回的response設定connection: keep-alive,同時不會關閉已建立的連線.

(3)客戶端收到服務端的response後,發現其中包含」connection: keep-alive「,就認為是乙個長連線,不關閉這個連線。並用該連線再傳送request.轉到(1)

基於http協議的長連線減少了請求,減少了建立連線的時間,但是每次互動都是由客戶端發起的,客戶端傳送訊息,服務端才能返回客戶端訊息。

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

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

http 長連線 短連線

http短連線 非持久連線 是指,客戶端和服務端進行一次http請求 響應之後,就關閉連線。所以,下一次的http請求 響應操作就需要重新建立連線。http長連線 持久連線 是指,客戶端和服務端建立一次連線之後,可以在這條連線上進行多次請求 響應操作。持久連線可以設定過期時間,也可以不設定。http...

Http長連線配置

客戶端與nginx的長連線 keepalive timeout 客戶端與nginx之間的長連線超時設定,當乙個連線的最後一次資料傳輸至今超過了這個時間,那麼當前連線就會被服務端主動關閉。預設值60s,因此客戶端與nginx預設是長連線的。keepalive requests 也是客戶端與nginx的...