一、WebSocket是什么?
WebSocket实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的。解决了http无状态、短链接和服务器端无法主动给客户端推送数据等问题。其通信基础也基于TCP。由于较老的浏览器可能不支持WebSocket协议,所以使用WebSocket通信的双方在进行TCP的三次握手之后,还需要额外在进行一次握手,这一次握手的双方通信的报文也是基于http协议改造的。
二、webSocket建立连接的过程
首先要经过TCP的三次握手,在此就不赘述了,可以参考之前的文章
一次真实的WebSocke请求:
格式要求:
- 握手必须是一个有效的HTTP请求
- 请求方式必须是
GET
,且HTTP的版本必须是1.1
- 请求头中必须包含
host
字段 - 请求头中必须包含
Connection
字段,且值为Upgrade
- 请求头中必须包
Sec-WebSocket-Key
字段,该字段值是客户端的标识编码成 base64 格式 - 请求必须包含
Sec-WebSocket-Version
字段信息,值必须为 13 - 请求必须包含
Origin
字段;
拟人化展示从HTTP协议升级到WebSocket协议的过程:
1、发送一个GET请求
关键:Upgrade: websocket;Connection: Upgrade;
这两个就告诉服务器,我要发起websocket
协议,我不是HTTP
。
2、服务器收到了协议,返回一个 Switching Protocol
, 这样就连接成功了文章来源:https://www.toymoban.com/news/detail-427241.html
3、接下来的通信都是websocket
, 这样就很好的连接了文章来源地址https://www.toymoban.com/news/detail-427241.html
到了这里,关于WebSocket建立连接的过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!