一.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