長連線和短連線的定義區別,以及應用場景

2021-10-02 07:32:51 字數 929 閱讀 1817

http/1.0預設使用短連線,http/1.1開始預設使用長連線;

http協議的長連線和短連線,實質就是tcp協議的長連線和短連線;

tcp協議建立連線需要3次握手,斷開連線需要4次握手,這個過程會消耗網路資源和時間;

長連線:在乙個tcp連線上可以傳送多個資料報,但是如果沒有資料報傳送時,也要雙方發檢測包以維持這個長連線;三次握手後連線,不斷開連線,保持客戶端和服務端通訊,直到伺服器超時自動斷開連線,或者客戶端主動斷開連線。

短連線:當雙方需要資料互動的時候,就建立乙個tcp連線,本次互動完之後就斷開這個連線;三次握手後建立連線,傳送資料報並得到伺服器返回的結果後,通過客戶端和伺服器的四次握手後斷開連線。

長連線可以省去較多建立連線和斷開連線的操作,所以比較節省資源和時間,但是長連線如果一直存在的話,需要很多探測包的傳送來維持這個連線,這對伺服器將是很大的負擔;

相對而言,短連線不需要伺服器承擔太大負擔,只要存在的連線就是有用的連線,但如果客戶端請求頻繁,就會在tcp的建立連線和斷開連線上浪費較大的資源和時間。

長連線:適用於客戶端和服務端通訊頻繁的場景,例如:聊天室,實時遊戲等場景。即時通訊(qq)般使用的都是長連線,但並不是永久連線(比如20分鐘,半個小時),因為即時通訊是頻繁的傳送請求,使用長連線只需要建立一次連線,同時再根據業務設定保持時間,超過這個時間就會斷開連線,一定程度上保證了伺服器的壓力不會過大。

像心跳一樣,每隔固定時間向伺服器傳送乙個包,以此來告訴伺服器,這個客戶端還活著。為了保持長連線,一般都是很小的包(節約流量)或者只有包頭的空包。

心跳檢測步驟:

1.客戶端每隔一段時間間隔就傳送乙個探測包給伺服器;

2.客戶端發包時啟動乙個超時定時器;

3.服務端接收到探測包後會回應乙個包;

4.如果客戶端收到伺服器的應答包,則說明伺服器正常,刪除超時定時器;如果沒有收到則伺服器異常。

短連線和長連線區別

短連線 連線 傳輸資料 關閉連線 http是無狀態的,瀏覽器和伺服器每進行一次http操作,就建立一次連線,但任務結束就中斷連線。也可以這樣說 短連線是指socket連線後傳送後接收完資料後馬上斷開連線。長連線 連線 傳輸資料 保持連線 傳輸資料 關閉連線。長連線指建立socket連線後不管是否使用...

TCP長連線和短連線的區別

當網路通訊時採用tcp協議時,在真正的讀寫操作之前,server與client之間必須建立乙個連線,當讀寫操作完成後,雙方不再需要這個連線時它們可以釋放這個連線,連線的建立是需要 三次握手的,而釋放則需要 4次揮手,所以說每個連線的建立都是需要資源消耗和時間消耗的 示意圖 長連線 連線 資料傳輸 保...

TCP長連線和短連線的區別

當網路通訊時採用tcp協議時,在真正的讀寫操作之前,server與client之間必須建立乙個連線,當讀寫操作完成後,雙方不再需要這個連線時它們可以釋放這個連線,連線的建立是需要三次握手的,而釋放則需要4次揮手,所以說每個連線的建立都是需要資源消耗和時間消耗的 這就要求長連線在沒有資料通訊時,定時傳...