Http 長連線 短連線 長輪詢 短輪詢

2021-07-24 14:26:15 字數 1149 閱讀 9761

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

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

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

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

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

長連線和短連線的產生在於client和server採取的關閉策略,具體的應用場景採用具體的策略,沒有十全十美的選擇,只有合適的選擇

應用場景區別:

1.一般長連線(追求實時性高的場景)用於少數client-end to server-end的頻繁的通訊,例如:資料庫的連線用長連線, 如果用短連線頻繁的通訊會造成socket錯誤,而且頻繁的socket 建立也是對資源的浪費。

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

和短連線和長連線有本質區別

1. 短輪詢:重**送http請求,查詢目標事件是否完成,優點:編寫簡單,缺點:浪費頻寬和伺服器資源

2. 長輪詢:在服務端hold住http請求(死迴圈或者sleep等等方式),等到目標時間發生,返回http響應。優點:在無訊息的情況下不會頻繁的請求,缺點:編寫複雜

HTTP 長連線 短連線 長輪詢 短輪詢

http 1.0需要使用keep alive引數來告知伺服器端要建立乙個長連線,而http1.1預設支援長連線,http的長連線很容易在空閒後自動斷開,一般來說這個時間是300s左右。http是基於tcp ip協議的,建立乙個tcp連線是需要經過三次握手的,有一定的開銷,如果每次通訊都要重新建立連線...

Http短輪詢 Http長輪詢 短連線和長連線

http短輪詢指前端使用ajax定時請求後端伺服器介面,後端伺服器接收到請求後馬上響應給前端 無論是否有結果 http長輪詢指前端使用ajax請求後段伺服器介面,後端伺服器在有資料更新時 或到達超時時間 才響應給前端,否則就掛起當前請求,前端在拿到響應結果後馬上再次向服務端發起請求 短連線指的是tc...

長連線 短鏈結 長輪詢 短輪詢

原文 那就是一直認為,http連線分為長連線和短連線,而我們現在常用的都是http1.1,因此我們用的都是長連線。這句話其實只對了一半,我們現如今的http協議,大部分都是1.1的,因此我們平時用的基本上都是長連線。但是前半句是不對的,http協議根本沒有長短連線這一說,也正因為誤解了這個,導致對於...