什么是WebSocket?它是一种网络传输协议,可以在单个TCP连接上进行全双工通信。服务器和客户端都可以主动向对方发送或接收数据。特点1.全双工2.二进制帧3.协议名引入ws和wss分别代表明文和密文websocket协议4.握手:必须有握手过程格式客户端发送的格式GET/chatHTTP/1.1Host:server.example.comUpgrade:websocket//必须设置Websocket,表示要升级到Websocket协议Connection:Upgrade//必须设置Upgrade,表示客户端要连接升级Sec-WebSocket-密钥:dGhlIHNhbXBsZSBub25jZQ==//客户端发送的用于简单身份验证密钥的base64编码密文密钥来源:http://example.comSec-WebSocket-Protocol:chat,superchatSec-WebSocket-Version:13//支持的Websocket版本数据服务器返回的格式:HTTP/1.1101SwitchingProtocols//表示服务器接受WebSocket协议客户端连接Upgrade:websocketConnection:UpgradeSec-WebSocket-Accept:s3pPLMBiTxaQ9kYGzzhZRbK+xOo=Sec-//通过添加值验证客户端请求报文请求头中的“Sec-WebSocket-Key”和专用的UUIDWebSocket-Protocol:chat优点1.控制开销小,数据包头协议更小,不同于http每次请求需要携带完整的头2.真实性更强-时间性能3.持续创建连接状态创建通信后,可以省略状态信息4.更好的二进制支持5.支持扩展:用户可以扩展websocket协议,实现一些自定义的子协议6.更好的压缩效果和更高的压缩比
