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位表示数据长度
如果实际传输数据长度在126 - 65535(2^16),用7+16位表示数据长度。前7位固定为1111110(126),往后拓展16位。
如果实际传输数据长度大于65535,用7+64位表示数据长度。该7位的值固定为 1111111 (127),往后扩展64位。
6. Masking-key(0或者32位)
用于存储掩码密钥,只有MASK为1时才有(客户端向服务端发送)。
7. Payload data (0或者其他)
扩展数据,一般没有,除非有扩展。