WebSocket協議詳解

2022-05-04 03:42:08 字數 1131 閱讀 2892

**

1. websocket 是什麼

websocket 是html5提出的乙個協議規範,參考rfc6455

websocket,通過乙個握手的機制,客戶端(瀏覽器)和伺服器(webserver)之間建立乙個tcp連線,從而方便c-s之間的通訊。在websocket出現之前 ,web互動一般是基於 http 協議的短連線或長連線

websocket 是為解決 客戶端與服務端實時通訊而產生的技術。websocket協議本質上是乙個基於tcp的協議,先通過 http/https 協議發起一條特殊的http請求進行握手,然後建立乙個用於交換資料的tcp連線。

2. websocket 優點

以前 webserver 實現推送技術或即時通訊,用的都是輪詢(polling),由 瀏覽器 主動發出請求,將伺服器的訊息拉回來,這種情況,瀏覽器需要不斷向伺服器傳送請求,然而 http request 的header非常長,body可能是乙個很小的值,這樣會占用很多頻寬和伺服器資源

ajax 需要客戶端發起請求,而 websocket服務端與客戶端可以彼此相互推送資訊,不受時間和方向限制

從伺服器的角度來說,websocket有以下好處:

1. 節省每次請求的header,http的header一般有幾十位元組

2. server 可以主動向客戶端傳資料

3. 安全性高

http通訊方式:

客戶端c把資料封裝好了要交給服務端s,所以把水放到水槍裡面,射過去給s

s用桶把水擋下來了,然後分析水的成分(資料內容),完成後再把新的水(返回的資料)射回去給c

這個過程中,任何人都可以隨時在c和s之間用海綿吸一點水然後拿去分析(嗅探資料),或者是直接用桶把水都擋下來分析完後再裝到水槍中,模仿c的動作射給s(也就是**抓包)

websocket方式:

客戶端c和服務端s,雙方之間先用一條水管連起來(用的是http握手),然後水流都通過這個小水管來傳輸

水管裡面一直有水在流動,所以要通訊只需要c或者是s把資料水流放到水管中,則會立刻傳輸到對方那邊

這個過程中,要嗅探就比較麻煩了,需要先在水管中先打個洞,然後再把分析器放進去、或者是斬斷這個水管在中間接個水表之類的裝置去分析水質成分

WebSocket協議詳解與c c 實現

websocket有公共的標準,有很多公共的庫可以使用,比如web端,各個瀏覽器都已原生的支援websocket,所以拿來即用,非常的方便。比如cocos2dx就繼承了websocket。比如遊戲使用了websocket,那麼就可以非常容易的用web呼叫js發websocket訊息,從而模擬客戶端的...

WebSocket握手協議

connection keep alive 客戶端 啦啦啦,有沒有新資訊 request 服務端 沒有 response 客戶端 啦啦啦,有沒有新資訊 request 服務端 沒有。response 客戶端 啦啦啦,有沒有新資訊 request 服務端 你好煩啊,沒有啊。response 客戶端 啦...

WebSocket協議介紹

websocket,即web瀏覽器與web伺服器之間全雙工通訊標準,其中,websocket協議由ietf定位標準,websocket api由w3c定位標準。一旦web伺服器與客戶端之間建立起websocket協議的通訊連線,之後所有的通訊都依靠這個專用協議進行。通訊過程中互相傳送json xml...