图一

说明:

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协议数据格式解析相关推荐

  1. 用C语言解析通讯协议数据,C/C++知识点之服务端使用c++实现websocket协议解析及通信...

    C/C++知识点之服务端使用c++实现websocket协议解析及通信 小标 2018-12-03 来源 : 阅读 2289 评论 0 摘要:本文主要向大家介绍了 C/C++知识点之服务端使用c++实 ...

  2. 服务端使用c++实现websocket协议解析及通信

    WebSocket 设计出来的目的就是要使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力. 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后, ...

  3. http协议与https协议+UDP协议和TCP协议+WebSocket协议下服务端主动去发送信息+对称加密与非对称加密+get和post请求方式区别详解+浏览器内核以及jsj解析引擎

    TCP和UDP协议是TCP/IP协议的核心. 在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Control Protocol).UDP(用户数据报协议,User Data P ...

  4. WebSocket协议分析

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 解析websocket数据格式." 好久不见,一晃一年又过去了,祝大家新年好运. 今天,给大家分析一个常见的协议--WebSock ...

  5. 【 ➰斗艳争妍の网络协议姐妹花‍‍️➰】http协议 VS websocket协议

    http协议 http简介 http http(hypertext transfer protocol),"超文本传输协议". 超文本 包含有超链接和各种多媒体元素标记的文本.常见 ...

  6. 【转】WebSocket协议:5分钟从入门到精通

    一.内容概览 由于WebSocket的出现,使得浏览器也具备了实时双向通信的能力.本文由浅入深,介绍了WebSocket建立连接.交换数据的细节,以及数据帧的格式.此外,还简要介绍了针对WebSock ...

  7. WebSocket协议:5分钟从入门到精通

    一.内容概览 WebSocket的出现,使得浏览器具备了实时双向通信的能力.本文由浅入深,介绍了WebSocket如何建立连接.交换数据的细节,以及数据帧的格式.此外,还简要介绍了针对WebSocke ...

  8. websocket协议以及在gin中的应用

    目录 websocket协议简介 WebSocket 协议的来源 短轮询 本质 实现 应用场景 优缺点 长轮询 本质 实现 应用场景 优缺点 WebSocket协议 websocket定义及与HTPP ...

  9. AJAX--URL--http、https、websocket协议、跨域

    AJAX AJAX -- URL -- http.https.websocket协议 -- 跨域 一. 客户端与服务器 二. url地址 2.1 概念:URL(全称是UniformResourceLo ...

  10. WebSocket 协议

    1.1 背景知识 由于历史原因,在创建一个具有双向通信机制的 web 应用程序时,需要利用到 HTTP 轮询的方式.围绕轮询产生了 "短轮询" 和 "长轮询". ...

最新文章

  1. Java程序员技术培训需要培训哪些?
  2. android timer弹出窗口,android – 如何在服务类中的Timer内显示AlertDialog?
  3. SqlDataReader.GetSchemaTable
  4. 大规模的服务器如何管理--批量管理工具
  5. helm部署minio
  6. 在项目中使用fastreport_如何在项目管理中使用里程碑
  7. ReaderMe 1.0.0.32版发布
  8. linux中vi编辑后如何保存,[转]Linux vi 编辑后如何保存
  9. 互联网晚报 | 1月21日 星期五 | 中兴手机官宣吴京为新代言人;58同城旗下“赶集网”更名“赶集直招”;罗永浩年后回归科技界...
  10. 如何使用HTML制作个人网站( web期末大作业)
  11. 最近电信宽带换光纤了,免费教大家破解电信光纤猫
  12. 一维非齐次热传导方程的紧致差分格式(附Matlab代码)
  13. c语言编程实现基2-fft,fft算法研究及基2fft算法的c语言实现.doc
  14. python怎样开发软件_Python是怎么编写软件的?
  15. c语言汉字属于什么类型_【C语言】必学知识点 - 基本数据类型!你学会了吗?...
  16. Boxy SVG for Mac(矢量图编辑器)
  17. php qq邮箱验证码不显示图片,qq邮箱邮件图片不显示怎么解决-解决qq邮箱邮件图片不显示的方法 - 河东软件园...
  18. 上传文件nginx限制大小解决
  19. 【ArcGIS】道路中心线提取、河道中心线的提取
  20. 办公族如何防治鼠标手?

热门文章

  1. 神奇小子重启自动驾驶项目,推出开源软件Comma Neo
  2. linux认证ppt的图片,linux用户、组和身份认证-课件(PPT-精).ppt
  3. 【7】OPencv骨架细化算法
  4. 中广瑞达龙华模具注塑成型加工中有哪些工艺条件?
  5. 联想电脑重装系统F12开机项选择无USB启动选项
  6. easyui filebox文件大小校验
  7. 四川轻化工大学计算机网络技术分数线,四川轻化工大学录取投档线
  8. 普罗米修斯 Prometheus
  9. linux下的护眼软件
  10. 多个vmdk合并成一个vmdk方法