長短輪詢,長短連線

2022-03-30 21:43:08 字數 1295 閱讀 9921

長短輪詢 相對於 客戶端動作來講是沒有區別的,都是不停的去請求,區別在於後端的反應和前端的行為。(由於都比較占用服務端資源,就不說這些缺點了)

短輪詢 是前端不停的請求,後端有沒有資料都會返回,前端拿到的是否為空資料也都繼續請求,因此,前端的資料不太好。

長輪詢 也是前端不停的請求,後端去判斷 有資料返回 ,之後 前端繼續請求,沒有資料 ,後端就把程序掛起,在前端也就是超時,超時後 前端繼續請求,這樣,前端獲取的資料都是正常的。

長短連線 其實指的是 http1.0 到 1.1 公升級的新特性,

http/1.0 版的主要缺點是,每個tcp連線只能傳送乙個請求。傳送資料完畢,連線就關閉,如果還要請求其他資源,就必須再新建乙個連線。

tcp連線的新建成本很高,因為需要客戶端和伺服器三次握手,並且開始時傳送速率較慢(slow start)。所以,http 1.0版本的效能比較差。隨著網頁載入的外部資源越來越多,這個問題就愈發突出了。

為了解決這個問題,有些瀏覽器在請求時,用了乙個非標準的connection字段。

connection: keep-alive

這個字段要求伺服器不要關閉tcp連線,以便其他請求復用。伺服器同樣回應這個字段。

connection: keep-alive

乙個可以復用的tcp連線就建立了,直到客戶端或伺服器主動關閉連線。

1.1 版的最大變化,就是引入了持久連線(persistent connection),即tcp連線預設不關閉,可以被多個請求復用,不用宣告connection: keep-alive。現在我們用的都是1.1版本的http,缺省長連線。

客戶端和伺服器發現對方一段時間沒有活動,就可以主動關閉連線。不過,規範的做法是,客戶端在最後乙個請求時,傳送connection: close,明確要求伺服器關閉tcp連線。

長短輪詢和長短連線的區別

第乙個區別是決定的方式,乙個tcp連線是否為長連線,是通過設定http的connection header來決定的,而且是需要兩邊都設定才有效。而一種輪詢方式是否為長輪詢,是根據服務端的處理方式來決定的,與客戶端沒有關係。

第二個區別就是實現的方式,連線的長短是通過協議來規定和實現的。而輪詢的長短,是伺服器通過程式設計的方式手動掛起請求來實現的。

TCP長短連線

tcp 長短連線 1 什麼是 tcp長連線 從應用層來看,就是 client 到server 建立一次連線,傳送多個資料報,直到不再與 server 通訊時關閉連線。connect send recv send recv close。從傳輸層來看,使用的是 keep alive timer 實現 t...

Socket程式設計 長短連線

長連線和短連線是由客戶端決定的 短連線是客戶端每做乙個通訊就連線一次 如果是頻繁的業務模型,長連線比較好 寫乙個短連線的的例子 include include include include include include include include include include includ...

長短連線學習筆記

tcp連線 在讀寫操作之前,server和client之間必須建立乙個連線,連線建立需要3次握手,釋放則需要4次握手,連線的建立都是需要資源的消耗和時間消耗的 短連線 一般只會在client和 servler間傳遞一次讀寫操作 長連線 完成一次讀寫後,不會主動關閉,後續讀寫會繼續使用這個連線 首先說...