很多人疑惑有http,為什麼要使用websocket?因為http是超文字傳輸協議,的通訊只能有客戶端發起
其連線如圖下:
如果伺服器有連續的狀態變化,客戶端要獲知就非常麻煩,可以採用輪詢的方式(客戶端每隔一段時間就向伺服器發起請求),但這種方式很耗資源,效率較低。
websocket是html5新增的一種基於tcp協議的網路通訊協議,實現了瀏覽器與伺服器全雙工通訊,簡單來說就是伺服器可以主動向瀏覽器推送訊息,瀏覽器也可以主動向伺服器傳送訊息。
對比http協議客戶端與伺服器如下圖
其特點:
(1)建立在 tcp 協議之上,伺服器端的實現比較容易。
(2)與 http 協議有著良好的相容性。預設埠也是80和443,並且握手階段採用 http 協議,因此握手時不容易遮蔽,能通過各種 http **伺服器。
(3)資料格式比較輕量,效能開銷小,通訊高效。
(4)可以傳送文字,也可以傳送二進位制資料。
(5)沒有同源限制,客戶端可以與任意伺服器通訊。
(6)協議識別符號是ws(如果加密,則為wss),伺服器**就是 url。
var ws =
newwebsocket
(url [
, protocols]);
//url指連線的伺服器位址,
/*第二個引數:單個協議字串或協議字串陣列。這些字串用於指示子協議,以便單個伺服器可以實現
多個websocket子協議(例如,您可能希望乙個伺服器能夠根據指定的協議處理不同型別的互動)。如果
不指定協議字串,則假定為空字串。*/
WebSocket 和HTTP的區別及原理
有時候還會有老鐵在考慮在什麼樣的環境下使用websocket,什麼樣的環境下使用http,今天我們來說下websocket和http。websocket和http的區別 協議是用在應用層的協議,他是基於 tcp協議的,協議建立鏈結也必須要有三次握手才能傳送資訊。鏈結分為短鏈結,長鏈結,短鏈結是每次請...
WebSocket和HTTP的區別及原理
http是單向的,客戶端傳送請求,伺服器傳送響應。舉例來說,當客戶端向伺服器傳送請求時,該請求以http或https的形式傳送,在接收到請求後,伺服器會將響應傳送給客戶端。每個請求都與乙個對應的響應相關聯,在傳送響應後客戶端與伺服器的連線會被關閉。每個http或https請求每次都會新建與伺服器的連...
websocket的通訊原理
1.websocket和http一樣是一種通訊協議,是html5的一種新的協議。2.既然有了http協議了,為什麼還會有websocket呢?是因為是為了彌補http的單向請求的缺陷的 http的請求只能由客戶端發起 建立在tcp協議之上,伺服器端的實現比較容易 2.和http協議有著良好的相容性,...