HTTP學習(四)短連線和長連線

2022-06-06 16:39:09 字數 1066 閱讀 7363

短連線:每次http請求都會建立tcp連線,管理容易

長連線:只需要建立一次tcp連線,以後http請求重複使用同乙個tcp連線,管理難

http1.1規定了預設保持長連線(http persistent connection ,也有翻譯為持久連線),資料傳輸完成了保持tcp連線不斷開(不發rst包、不四次揮手),等待在同網域名稱下繼續用這個通道傳輸資料;相反的就是短連線

如果伺服器沒有告訴客戶端超時時間也沒關係,服務端可能主動發起四次揮手斷開tcp連線,客戶端能夠知道該tcp連線已經無效;另外tcp還有心跳包來檢測當前連線是否還活著,方法很多,避免浪費資源。

在長連線的應用場景下,client端一般不會主動關閉它們之間的連線,client與server之間的連線如果一直不關閉的話,會存在乙個問題,隨著客戶端連線越來越多,server早晚有扛不住的時候,這時候server端需要採取一些策略,如關閉一些長時間沒有讀寫事件發生的連線,這樣可以避免一些惡意連線導致server端服務受損;如果條件再允許就可以以客戶端機器為顆粒度,限制每個客戶端的最大長連線數,這樣可以完全避免某個蛋疼的客戶端連累後端服務。

長連線和短連線的產生在於client和server採取的關閉策略,具體的應用場景採用具體的策略,沒有十全十美的選擇,只有合適的選擇
一般長連線(追求實時性高的場景)用於少數client-end to server-end的頻繁的通訊,例如:資料庫的連線用長連線, 如果用短連線頻繁的通訊會造成socket錯誤,而且頻繁的socket 建立也是對資源的浪費。

而像web**的http服務一般都用短鏈結(追求資源易**場景),因為長連線對於服務端來說會耗費一定的資源,而像web**這麼頻繁的成千上萬甚至上億客戶端的連線用短連線會更省一些資源。

長、短連線是客戶端與服務端建立和保持tcp連線的機制

長連線、短連線、長輪詢、短輪詢、websocket釋疑

HTTP 長連線和短連線

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

http 長連線 短連線

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

HTTP的長連線和短連線

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