websocket
1.伺服器主動推送資料給用戶端(http請求是用戶端先發起的)
區分websocket還是http協定
websocket的握手是建立在tcp三次握手之上的,也就是說tcp建立完連接配接後,再進行websocket的握手,浏覽器發送握手資訊給webserver,然後webserver傳回一條資料給浏覽器,可以檢視websocket_frc6455.pdf協定文檔
握手流程
1.先擷取sec-websocket-key中的值
2.将guid和key進行組裝
3.組裝好後,進行哈希得到字元串sha
4.将sha進行base64編碼
5.将4中編碼後的value傳回到用戶端
備注:隻要是websocket協定,其GUID都一樣
tcp處理分包,粘包,隻有兩種方法:分隔符和指定具體的長度
自定義協定:1.tcp分包和粘包 2.json/xml,
websocket資料互動分為三步握手和資料傳輸和斷開,可以使用狀态機的概念分兩步解析接收到的資料