标签:ebSocket WebSocket 握手 通信 Sec HTTP 全双工 连接
什么是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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。