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即可。