BOSH 長連線和短連線 http的理解

2021-07-05 07:52:44 字數 1274 閱讀 3281

bidirectional-streams over synchronous http (雙向同步)(bosh) 是一種傳輸協議。

它可以利用同步的http協議模擬兩個實體(例如客戶端-服務端)雙向流傳輸,而不需要輪詢或非同步元件。

對於那些同時需要「推」和「拉」技術的應用程式,bosh明顯比ajax等基於http協議的技術更高效,更節約資源。相比http輪訓技術(如comet技術),bosh有著更高的效率和更低的延遲。到目前為止,bosh主要用於jabber/xmpp客戶端-伺服器之間的資料傳輸(如web端和手機客戶端之間的通訊)。然而bosh並非為xmpp定製的,它也可以用於別的傳輸。

xmpp基於bosh定義了相關標準,用於xmpp資料傳輸。這個解決方案主要是為了解決http協議無法保持tcp長連線的問題。

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

下面就是一些使用長連線和短連線之間的差別:

1)長連線:一般俗說的長連線是指一直連著,eg:smtp,pop3,telnet

短連線:就是請求一次,連線一次,斷開一次,都指的tcp。比如http 1.0

2)短連線的操作步驟是:建立連線——資料傳輸——關閉連線...建立連線——資料傳輸——關閉連線;

長連線的操作步驟是:建立連線——資料傳輸...(保持連線)...資料傳輸——關閉連線

3)長連線:多用於操作頻繁,點對點的通訊,而且連線數不能太多的情況。每個tcp連線的建立都需要三次握手,每個tcp連線的斷開要四次握手。如果每次操作都要建立連線然後再操作的話處理速度會降低,所以每次操作下次操作時直接傳送資料就可以了,不用再建立tcp連線。例如:資料庫的連線用長連線,如果用短連線頻繁的通訊會造成socket錯誤,頻繁的socket建立也是對資源的浪費。

短連線:web**的http服務一般都用短連線。因為長連線對於伺服器來說要耗費一定的資源。像web**這麼頻繁的成千上萬甚至上億客戶端的連線用短連線更省一些資源。試想如果都用長連線,而且同時用成千上萬的使用者,每個使用者都占有乙個連線的話,可想而知伺服器的壓力有多大。所以併發量大,但是每個使用者又不需頻繁操作的情況下需要短連線。

&&&&&&&&&&&&&&&&&&&&&&&&&

http協議的理解:

為什麼說http協議是無狀態的,無連線(或者說是短連線):

無狀態:——> 因為使用http協議是不能進行使用者狀態的跟蹤的!也就是說在客戶端瀏覽器與伺服器之間的請求和響應結束後在伺服器上並不儲存任何客戶端的資訊,對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

HTTP 長連線和短連線

1.http協議與tcp ip協議的關係 http的長連線和短連線本質上是tcp長連線和短連線。http屬於應用層協議,在傳輸層使用tcp協議,在網路層使用ip協議。ip協議主要解決網路路由和定址問題,tcp協議主要解決如何在ip層之上可靠的傳遞資料報,使在網路上的另一端收到發端發出的所有包,並且順...

http 長連線 短連線

http短連線 非持久連線 是指,客戶端和服務端進行一次http請求 響應之後,就關閉連線。所以,下一次的http請求 響應操作就需要重新建立連線。http長連線 持久連線 是指,客戶端和服務端建立一次連線之後,可以在這條連線上進行多次請求 響應操作。持久連線可以設定過期時間,也可以不設定。http...

HTTP的長連線和短連線

http的長連線和短連線本質上是tcp長連線和短連線。http屬於應用層協議.短連線 瀏覽器和伺服器每進行一次http操作,就建立一次連線,但任務結束就中斷連線。長連線 當乙個網頁開啟完成後,客戶端和伺服器之間用於傳輸http資料的 tcp連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使...