websocket帧协议解析

websocket帧.png

1. FIN(1位)
帧结束标志位(1表示最后一帧)

2. RSV1(1位)、RSV2(1位)、RSV3(1位)
预留空间,一般情况下为0。除非协议有拓展(这一点不是很明白)

3. opcode(4位)

十六进制数据 解释
0x0 附加数据帧
0x1 文本数据帧
0x2 二进制数据帧
0x3-7 预留
0x8 连接关闭
0x9 ping
0xA pong
0xB-F 预留

4. MASK(1位)
掩码,1表示采用掩码(客户端向服务端发送必须带掩码),0表示未采用掩码

5. Payload len(7位/7+16位/7+64位)
如果实际传输数据长度小于126,用7位表示数据长度

7位.png

如果实际传输数据长度在126 - 65535(2^16),用7+16位表示数据长度。前7位固定为1111110(126),往后拓展16位。


7+16位.png

如果实际传输数据长度大于65535,用7+64位表示数据长度。该7位的值固定为 1111111 (127),往后扩展64位。


7+64位.png

6. Masking-key(0或者32位)
用于存储掩码密钥,只有MASK为1时才有(客户端向服务端发送)。

7. Payload data (0或者其他)
扩展数据,一般没有,除非有扩展。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容