功能介绍
websocket 是一种计算机通信协议,通过单个 TCP 连接提供全双工通信通道。 websocket 协议在 2011 年被 IETF 标准化为 RFC 6455。 应用程序使用此协议的 API 规范称为 websocket。
websocket 协议支持 Web 浏览器(或其他客户端应用程序ADC)与 Web 服务器之间的交互,其开销低于 HTTP 轮询等半双工替代方案,从而促进与服务器之间的实时数据传输,客户端可以主动向服务器发送信息,服务器也可以主动向客户端推送信息,是真正的双向平等对话。
为了实现与HTTP兼容性,websocket 握手使用 HTTP Upgrade header 从 HTTP 协议更改为 websocket 协议。
应用场影
1.实时数据展示:对于需要实时展示数据的场景,使用websocket可以比轮询等方式更加高效地获取数据。
2.物联网设备监控:物联网设备通常需要定时上传数据,而使用websocket可以使得服务器能够即时接收到数据。
3.股票行情分析:股票行情数据变化快,使用websocket可以使得客户端实时获取行情数据,更好地进行分析。
相对http协议websocket优势
传统的爬虫方式需要通过HTTP协议不断地发送请求,对于需要实时获取数据的场景来说,这种方式显然效率较低。而使用websocket则可以保持长连接状态,能够更快地获取数据,并且可以避免被服务器识别为爬虫而被封禁IP的风险
协商过程
1、client通过http向server发出请求,经过3次握手后,建立TCP连接,并添加协议升级的header "connecttion:upgrade" "upgrade:websocket"发送给 server,
2、server收到,同样以http协议回馈数据
3、client收到连接成功的信息,开始借助于TCP传输信道进行全双工通信
数据数分析
client向server发启请求经过3次握手后,建立TCP连接,并添加协议升级的header "connecttion:upgrade" "upgrade:websocket"发送给 server,
sever与 client协商,将协议升级到websocket
升级完毕后,后续数据通过TCP使用websocket传输