長連線與短連線
短連線:在一次完整的訊息互動(發請求-收響應)之後,立刻斷開連線(有一方傳送fin訊息)的情況都稱為短連線。
長連線:在tcp層握手成功後,不立即斷開連線,並在此連線的基礎上進行多次訊息(包括心跳)互動,直至連線的任意一方(客戶端或服務端)主動斷開連線,此過程稱為一次完整的長連線。
即:短連線一般只會在client/server間傳遞一次讀寫操作。長連線在完成一次讀寫之後,它們之間的連線並不會主動關閉,後續的讀寫操作會繼續使用這個連線。
優缺點:
短連線:管理起來比較簡單,存在的連線都是有用的連線,不需要額外的控制手段;
長連線:可以省去較多的tcp建立和關閉操作,節約時間。
如何區分當前使用的是長連線還是短連線?
用wireshark抓包可以看到有規律的心跳訊息互動(長連線的乙個明顯特徵是會有心跳訊息且一般心跳間隔都在30s或者1min左右)
心跳機制:像心跳一樣每隔固定時間發一次,以此來告訴伺服器,這個客戶端還活著,心跳包主要也就是用於長連線的保活和斷線處理。
tcp的keepalive和http的keepalive
tcp的keepalive是tcp保活計時器,判斷tcp當前的連線狀況,檢查當前tcp連線是否活著;http的keepalive是使用持續連線,要讓乙個tcp連線活久點, 以便在同乙個連線上傳送多個http。
長連線與短連線
通常短連線是這樣 連線 傳輸資料 關閉連線 那什麼是長連線?一般長連線相對短連線而言的,長連線在傳輸完數後不關閉連線,而不斷的傳送包保持連線等待處理下乙個資料報。such as 連線 傳輸資料 保持連線 傳輸資料 關閉連線。那什麼時候用短連線呢?一般長連線用於少數client end to serv...
長連線與短連線
短連線是指通訊雙方有資料互動時,就建立乙個tcp連線,資料傳送完成後,則斷開此tcp連線,一般銀行都使用短連線。比如http的,只是連線 請求 關閉,過程時間較短,伺服器若是一段時間內沒有收到請求即可關閉連線。其實長連線是相對於通常的短連線而說的,也就是長時間保持客戶端與服務端的連線狀態。通常的短連...
長連線與短連線
其實長連線是相對於通常的短連線而說的,也就是長時間保持客戶端與服務端的連線狀態。連線 資料傳輸 關閉連線 這就要求長連線在沒有資料通訊時,定時傳送資料報 心跳 以維持連線狀態,短連線在沒有資料傳輸時直接關閉就行了 長連線多用於操作頻繁,點對點的通訊,而且連線數不能太多情況,每個tcp連線都需要三步握...