一.WebSocket介绍

WebSocket是一种协议,可以在单个TCP连接上进行全双工通信。该协议使客户端与服务器之间数据交换变得更加简单,可以让服务器端主动向客户端推送数据。

在WebSocket API中,浏览器与服务器只需要完成一次握手,两者之间就可以创建持久性的连接并进行双向数据传输

WebSocket作为一种独立的,创建在TCP上的协议,通过HTTP/1.1协议的101状态码进行握手。创建Websocket连接时,通过浏览器发出请求,服务器对其进行回应,这个过程被称为“握手”

二.WebSocket原理

Websocket协议的数据收发过程大概分为如下三个步骤:

1.TCP的三次握手连接以及四次挥手断开

2.Websocket本身具有握手环节

3.Websocket握手成功后数据收发

三.Websocket握手环节

整个握手环节可以概括如下:

1.客户端向服务器端发送请求

2.服务器端根据客户端的请求切换到Websocket协议

3.服务器端告知客户端服务器已经可以发起Websocket连接

4.客户端发起连接的约定

5.客户端检查服务端的响应

6.服务端处理客户端连接

示意图如下[1]:

四.Websocket协议应用

Websocket协议常应用于如下场景[2]:

1.数据传输实时性要求较高的场景,比如网页聊天室直播

2.推送信息,比如网站消息通知邮箱新邮件提醒等。

3.监控在线状态,统计在线时长,比如在线考试等。

4.远程调试代码、云指令系统,比如云服务器

5.其它也可用于网络渗透技术

参考

[1]WebSocket协议介绍https://blog.csdn.net/u011943534/article/details/120049279?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-2-120049279-null-null.pc_agg_new_rank&utm_term=websocket%E5%8D%8F%E8%AE%AE%E6%8F%A1%E6%89%8B%E6%B5%81%E7%A8%8B%E5%9B%BE&spm=1000.2123.3001.4430

[2]https://blog.csdn.net/eastcnme/article/details/104284369WebSocket协议详解及应用https://blog.csdn.net/eastcnme/article/details/104284369