日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

WebSocket 协议简介

發布時間:2023/12/13 综合教程 42 生活家
生活随笔 收集整理的這篇文章主要介紹了 WebSocket 协议简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么需要WebSocket 協議?
眾所周知,HTTP 協議是一個遵循請求-響應模式的協議。這種模式有兩個特點:1. 由客戶端先發起請求,然后等待服務器的響應。2. 服務器不能在沒有接收到客戶端請求時,就發送數據。也就是說,客戶端和服務器之間的通信是單向的。

在某些應用中,通常有服務器向客戶端推送數據的需求,也就是需要客戶端和服務器之間能夠雙向通信。而使用現有的HTTP協議不能很好地實現這個需求,于是 HTTP 協議的升級版——WebSocket 協議被發明出來。

協議概述
WebSocket 協議包括兩部分:握手和數據傳輸。握手時會使用 HTTP 協議,所以說它是 HTTP 協議的升級版。

握手
客戶端發起握手時,會發送如下格式的 HTTP GET 請求:

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13

Host 頭部就不用說了。

Upgrade 和 Connection 頭部表明要求服務器升級到 WebSocket 協議。

Sec-WebSocket-Key 頭部是一串 Base64 編碼的隨機字符串,用于握手驗證。

Sec-WebSocket-Version 頭部指明協議版本。

Origin 和 Sec-WebSocket-Protocol 頭部是可選的,后者表示客戶端支持的子協議。通常這兩個頭部都可以忽略。

服務器在收到握手請求時,回復如下的 HTTP 101 響應完成握手(協議升級):

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: chat

Upgrade 和 Connection 頭部表明服務器已經升級到 WebSocket 協議。
Sec-WebSocket-Accept 頭部是為了給客戶端做驗證,它是的值是根據客戶端 Sec-WebSocket-Key 頭部的值使用某種算法計算出來的。

數據傳輸
握手成功后的數據傳輸過程就與 HTTP 協議沒有任何關系了。傳輸過程中,任意一方都可以自由地發送數據。協議中的數據傳輸單元稱作消息,一個消息包含一個或多個數據幀,每個數據幀都是消息的一個分片。WebSocket 數據幀的格式如下:

FIN,標志位。值為1時表示是一個消息的最后一個分片。

Opcode,4位。表示數據幀的類型,有如下值:

0x0。是一個連續的幀,即它的類型與上一個幀的類型相同。
0x1。是一個文本幀。
0x2。是一個二進制幀。
0x8。是一個關閉幀。
0x9。是一個 ping 幀。
0xa。是一個 pong 幀。
關閉幀、ping 幀和pong 幀都是控制幀,ping 幀和pong 幀可用來做心跳。
Mask,標志位。值為1時表示數據已經做了掩碼操作。

Payload length,數據長度。它的值為0-125時,就表示數據長度。它的值為126時,接下來的16位(Extended payload length 字段)表示數據長度。它的值為127時,表示接下來的64位(16位的 Extended payload length 字段和48位的 Extended payload length continued 字段)表示數據長度。

Masking-key,Mask標志為1時,表示一個32位的數據掩碼。Mask標志為0時,該字段不存在。

Payload Data,數據。

結束傳輸
當雙方不需要再傳輸數據時,一端發送關閉幀(不能分片發送),另一端也回復關閉幀。關閉幀可攜帶數據,攜帶的數據前兩個字節表示關閉狀態碼。連接正常關閉的狀態碼是1000。

通常關閉幀先由客戶端發起,服務器在回復關閉幀后就立即關閉 TCP 連接。如果關閉幀先由服務器發起,那么客戶端在回復關閉幀后要等待服務器先關閉 TCP 連接。

總結

以上是生活随笔為你收集整理的WebSocket 协议简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91啪在线观看 | 黄色在线观看国产 | 国产欧美一区二区三区视频在线观看 | 国产黄色大片网站 | 午夜视频网站在线观看 | 欧美美女在线观看 | 五月天婷婷基地 | 亚洲va在线∨a天堂va欧美va | 五月激情婷婷综合 | 成人mv| 欧美色涩在线第一页 | 日本不卡一区二区三区在线观看 | 国产片网站 | 亚洲精品福利在线观看 | 伊人成综合网 | 国产一区二区三区四区五区美女 | 亚洲欧美在线免费观看 | 国产1区2区3区4区 | 伊人狠狠操 | 久久中文字幕国产 | 国产亚洲精品久久久久婷婷瑜伽 | 亚洲资源av | 好吊妞视频在线观看 | 51妺嘿嘿午夜福利 | 免费黄色一级视频 | 最近中文字幕在线mv视频在线 | 亚洲精品福利 | 天天草比 | 青青草97 | 日韩一区二区三区精品 | 黄色大片aa | 国产一二三区在线视频 | 99久久婷婷国产一区二区三区 | 欧美顶级少妇做爰hd | 日本一二三区不卡 | 姑娘第5集在线观看免费好剧 | 香蕉91视频 | 亚洲永久无码7777kkk | 免费看国产一级片 | 青青草婷婷 | 交做爰xxxⅹ性爽 | 韩日av在线播放 | 亚洲少妇30p | 亚洲第一视频在线播放 | 国产成人h | 日本欧美国产一区二区三区 | 欧美日韩国产成人 | 四虎影院永久 | 亚洲a级在线观看 | 久久激情网站 | 九色国产 | 欧美少妇喷水 | 免费男女乱淫真视频免费播放 | 日韩毛片无码永久免费看 | 日韩精品视频一区二区三区 | 天天综合天天色 | 国产天堂精品 | 俄罗斯色片 | 91久久超碰| 伊人草草 | 日韩视频福利 | 国产美女被遭强高潮免费网站 | 羞羞涩涩网站 | 国产九九九精品 | 亚洲一区你懂的 | 亚洲视频高清 | 中文字幕精品一二三四五六七八 | 蜜臀aⅴ免费一区二区 | 日韩日韩日韩日韩日韩 | 天天操天天操天天干 | 日韩天堂网 | 欧美日韩色图片 | 国产精品毛片一区二区三区 | 女人被男人躁得好爽免费视频 | 久久艹av | 日韩va在线观看 | 视频一区欧美 | 欧洲美女与动交zozzo | 免费观看理伦片在线播放视频软件 | 老色批影院 | 性欧美一区二区三区 | 久热最新 | 成人在线免费看片 | 熟女丰满老熟女熟妇 | 日本三级吃奶头添泬无码苍井空 | 高潮videossex高潮 | 中文字幕在线观看91 | 欧美大奶在线 | 在线高清观看免费 | 国产色91| 浪浪视频在线观看 | 风韵少妇spa私密视频 | 欧洲色网站 | 亚洲精品网站在线 | 免费视频91| 激情综合区 | 日本欧美久久久久免费播放网 | 啪啪免费视频网站 | 色av综合网 |