Http 和TCP的關係,TCP長連接和短連接有什麼區別?

HTTP協議即超文本傳送協議(Hypertext Transfer Protocol ),是Web聯網的基礎,也是手機聯網常用的協議之一,HTTP協議是建立在TCP協議之上的一種應用。由於HTTP在每次請求結束後都會主動釋放連接,因此HTTP連接是一種“短連接”,要保持客戶端程序的在線狀態,需要不斷地向服務器發起連接請求。HTTP 是應用層協議,TCP 是傳輸層協議(位於應用層之下)。

一、長連接與短連接:

長連接:client方與server方先建立連接,連接建立後不斷開,然後再進行報文發送和接收。這種方式下由於通訊連接一直存在。此種方式常用於P2P通信。
短連接:Client方與server每進行一次報文收發交易時才進行通訊連接,交易完畢後立即斷開連接。此方式常用於一點對多點通訊。C/S通信。

二、長連接與短連接的操作過程:

短連接的操作步驟是:建立連接——數據傳輸——關閉連接...建立連接——數據傳輸——關閉連接;
長連接的操作步驟是:建立連接——數據傳輸...(保持連接)...數據傳輸——關閉連接

三、長連接與短連接的使用時機:

長連接多用於操作頻繁,點對點的通訊,而且連接數不能太多的情況。每個TCP連接的建立都需要三次握手,每個TCP連接的斷開要四次握手。如果每次操作都要建立連接然後再操作的話處理速度會降低,所以每次操作下次操作時直接發送數據就可以了,不用再建立TCP連接。例如:數據庫的連接用長連接,如果用短連接頻繁的通信會造成socket錯誤,頻繁的socket創建也是對資源的浪費。
短連接:web網站的http服務一般都用短連接。因爲長連接對於服務器來說要耗費一定的資源。像web網站這麼頻繁的成千上萬甚至上億客戶端的連接用短連接更省一些資源。試想如果都用長連接,而且同時用成千上萬的用戶,每個用戶都佔有一個連接的話,可想而知服務器的壓力有多大。所以併發量大,但是每個用戶又不需頻繁操作的情況下需要短連接。
總之:長連接和短連接的選擇要視需求而定。
發佈了186 篇原創文章 · 獲贊 49 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章