WebSocket协议数据格式解析
图一
说明:
websocket协议是基于TCP的应用层协议。按照图一左边用红色长方形扩起来的序列号逐条解释。10.12.100.89是客户端ip地址,47.111.170.187是服务端ip地址。
下方红色序号的数字对应图一左边红色框圈出来的序号。
1.三次握手操作:(24,25,26)
图二
2.客户端给服务器发送http协议,告诉服务端,现在要转换成websocket协议了(27)
图二是 发送的具体协议内容,其中有4个字段:Upgrade:websocket,Connection:Upgrade,Sec-WebSocket-Version,Sec-WebSocket(这2个字段是进行校验的)。
图三
3.服务端给客户端回http协议,告诉客户端,转换成websocket协议了(29)
图三是 发送的具体协议内容,其中有3个字段:Upgrade:websocket,Connection:Upgrade,Sec-WebSocket-Accept(这个字段是进行校验的)。
图四
图五
4.介绍Websocket协议格式:
根据图五的格式:
FIN:1位,用于描述消息是否结束,如果位1表示该消息为消息尾部,如果为0则还有后续数据包。RSV1,RSV2,RSV3:各1位,用于扩展定义,没有扩展约定则必须为0.
OPCODE:4位,最多表示15种类型消息。
OPCODE的定义范围:
%x0表示连续消息片断
%x1表示文本消息片断
%x2表示二进制消息片断
%x8表示连接关闭
%x9表示心跳检查ping
%xa表示心跳检查pong
MASK:1位,用于表示PayloadData是否经过掩码处理,客户端发出的数据帧需要进行掩码处理,所以此位1。
Payload length ===x,如果
如果x值在0-125,则后面2个字节形成的16位无符号整型数的值是payload的真实长度。
如果x值是126,则后面2个字节形成的16位无符号整型数的值是payload的真实长度。
如果x值是127,则后面8个字节形成的64位无符号整型数的值是payload的真实长度。
图六
图七
5.客户端给服务端发送了应用协议数据(31)。查询图五的协议格式:
Fin等于1,表示为消息结束。
Reserved是0,
Opcode等于1表示文本消息,
Mask等于1表示是客户端发的消息。
payload等于126,后面2个字节形成的16位无符号整型数的值是payload的真实长度为253个字节(31)
图七对应的是具体的协议数据内容253个字节。
图八
6.服务端给客户端回应用协议数据(34)。查询图五的协议格式:
FIN等于1,表示为消息结束
Reserved是0,
Opcode等于1表示文本消息。
Mask等于0表示是服务端发的消息。
payload等于126,后面2个字节形成的16位无符号整型数的值是payload的真实长度为135个字节(34)
WebSocket协议数据格式解析相关推荐
- 用C语言解析通讯协议数据,C/C++知识点之服务端使用c++实现websocket协议解析及通信...
C/C++知识点之服务端使用c++实现websocket协议解析及通信 小标 2018-12-03 来源 : 阅读 2289 评论 0 摘要:本文主要向大家介绍了 C/C++知识点之服务端使用c++实 ...
- 服务端使用c++实现websocket协议解析及通信
WebSocket 设计出来的目的就是要使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力. 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后, ...
- http协议与https协议+UDP协议和TCP协议+WebSocket协议下服务端主动去发送信息+对称加密与非对称加密+get和post请求方式区别详解+浏览器内核以及jsj解析引擎
TCP和UDP协议是TCP/IP协议的核心. 在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Control Protocol).UDP(用户数据报协议,User Data P ...
- WebSocket协议分析
点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 解析websocket数据格式." 好久不见,一晃一年又过去了,祝大家新年好运. 今天,给大家分析一个常见的协议--WebSock ...
- 【 ➰斗艳争妍の网络协议姐妹花️➰】http协议 VS websocket协议
http协议 http简介 http http(hypertext transfer protocol),"超文本传输协议". 超文本 包含有超链接和各种多媒体元素标记的文本.常见 ...
- 【转】WebSocket协议:5分钟从入门到精通
一.内容概览 由于WebSocket的出现,使得浏览器也具备了实时双向通信的能力.本文由浅入深,介绍了WebSocket建立连接.交换数据的细节,以及数据帧的格式.此外,还简要介绍了针对WebSock ...
- WebSocket协议:5分钟从入门到精通
一.内容概览 WebSocket的出现,使得浏览器具备了实时双向通信的能力.本文由浅入深,介绍了WebSocket如何建立连接.交换数据的细节,以及数据帧的格式.此外,还简要介绍了针对WebSocke ...
- websocket协议以及在gin中的应用
目录 websocket协议简介 WebSocket 协议的来源 短轮询 本质 实现 应用场景 优缺点 长轮询 本质 实现 应用场景 优缺点 WebSocket协议 websocket定义及与HTPP ...
- AJAX--URL--http、https、websocket协议、跨域
AJAX AJAX -- URL -- http.https.websocket协议 -- 跨域 一. 客户端与服务器 二. url地址 2.1 概念:URL(全称是UniformResourceLo ...
- WebSocket 协议
1.1 背景知识 由于历史原因,在创建一个具有双向通信机制的 web 应用程序时,需要利用到 HTTP 轮询的方式.围绕轮询产生了 "短轮询" 和 "长轮询". ...
最新文章
- Java程序员技术培训需要培训哪些?
- android timer弹出窗口,android – 如何在服务类中的Timer内显示AlertDialog?
- SqlDataReader.GetSchemaTable
- 大规模的服务器如何管理--批量管理工具
- helm部署minio
- 在项目中使用fastreport_如何在项目管理中使用里程碑
- ReaderMe 1.0.0.32版发布
- linux中vi编辑后如何保存,[转]Linux vi 编辑后如何保存
- 互联网晚报 | 1月21日 星期五 | 中兴手机官宣吴京为新代言人;58同城旗下“赶集网”更名“赶集直招”;罗永浩年后回归科技界...
- 如何使用HTML制作个人网站( web期末大作业)
- 最近电信宽带换光纤了,免费教大家破解电信光纤猫
- 一维非齐次热传导方程的紧致差分格式(附Matlab代码)
- c语言编程实现基2-fft,fft算法研究及基2fft算法的c语言实现.doc
- python怎样开发软件_Python是怎么编写软件的?
- c语言汉字属于什么类型_【C语言】必学知识点 - 基本数据类型!你学会了吗?...
- Boxy SVG for Mac(矢量图编辑器)
- php qq邮箱验证码不显示图片,qq邮箱邮件图片不显示怎么解决-解决qq邮箱邮件图片不显示的方法 - 河东软件园...
- 上传文件nginx限制大小解决
- 【ArcGIS】道路中心线提取、河道中心线的提取
- 办公族如何防治鼠标手?