Websocket握手
客户端握手请求
客户端发送一个正常的HTTP报文,报头信息类似为:
1 | GET /chat HTTP/1.1 |
1 | Upgrade: websocket Connection: Upgrade |
这两个字端告诉服务器客户端请求的是Websocket协议
1 | Sec-Websocket-Key: dGhlIHNhbXBsZSBub25jZQ== |
由客户端随机生成,用于验证服务端的服务器用语处理这个请求的处理是否是Websocket助理
1 | Sec-Websocket-Protocol: chat, superchat |
子协议,用于表明客户端期望的子协议,服务器在子协议中选择支持的协议返回给客户端
1 | Sec-Websocket-Version: 13 |
Websocket协议版本,固定为13
服务器返回握手请求
1 | HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-Websocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-Websocket-Protocol: chat |
这里就不对服务器的响应再作叙述。
在握手完成之后客户端和服务器就可以开始发送Websocket报文了,报文以桢的形式发送,和HTTP报文再没有什么关系,报文格式参考RFC即可。