全双工通信的WebSocket
作者:互联网
什么是WebSocket协议?
- 建立在HTTP基础上的协议;
- 连接的发起方仍是客户端;
- 确立连接后,不管服务器还是客户端,任意一方都可直接向对方发送报文。
主要特点
- 推送功能:服务器可直接发送数据,不必等待客户端请求
- 减少通信量:只要建立WebSocket连接,就希望一直保持连接状态;且首部信息很小;
- 握手:为了实现WebSocket通信,在HTTP连接建立后,需要完成一次握手;
与HTTP的主要差别
- keep-alive是HTTP协议层面的长连接,不能主动推消息,主要是进行连接复用的
- websocket是websocket协议的长连接,只要不断开,连接一直都在,而且服务端可以主动推消息
握手-请求
- 用到HTTP的Upgrade首部字段,告知服务器通信协议发生改变
- Sec-WebSocket-Key字段内记录着握手过程中必不可少的键值
- Sec-WebSocket-Protocol字段内记录使用的子协议
握手-响应
- 对于之前的请求,返回状态码101 Switching Protocols的响应
- Sec-WebSocket-Accept的字段值是由握手请求中的Sec-WebSocket-Key的字段值生成的
- 成功握手确立WebSocket连接之后,通信时不再使用HTTP的数据帧,而采用WebSocket独立的数据帧
标签:ebSocket,WebSocket,握手,通信,Sec,HTTP,全双工,连接 来源: https://www.cnblogs.com/QingshanY/p/16216350.html