当前位置: 首页 > news >正文

WEBSOCKET研究

一、WEBSOCKET的通信方式
通过捕包可以知道,WEBSOCKET的通信至少经过如下两个阶段
1、第一阶段是HTTP连接阶段
由客户端连接服务器TCP端口,然后发出标准的HTTP GET请求。
但这个GET请求里会带一个安全码Sec-WebSocket-Key。

GET / HTTP/1.1\r\n
Host: 192.168.120.33:8080\r\n
Connection: Upgrade\r\n
Upgrade: websocket\r\n
Sec-WebSocket-Version: 13\r\n
Sec-WebSocket-Key: tRbfQhJzXEBmQlEIjVyIDA==\r\n
\r\n

2、WEBSOCKET服务器要判断这个KEY,如果存在,就要获取下来
以便于后续认证
并回复101升级,同时带一个服务器的KEY:Sec-WebSocket-Accept

HTTP/1.1 101 Switching Protocols\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-WebSocket-Accept: a2TlOCxzgJ30SiwCycOC4A8CHCE=\r\n
\r\n

3、 这样双方就有了一个通信密钥交互结果
在服务端给客户端发送数据时,会带一个WEBSOCKET的头:
WebSocket
0… … = Fin: False
.000 … = Reserved: 0x0
… 0010 = Opcode: Binary (2)
0… … = Mask: False
.111 1110 = Payload length: 126 Extended Payload Length (16 bits)
Extended Payload length (16 bits): 4082
Payload

头共32位。
前16位,是选项位以及长度标识
后16位,是长度


文章转载自:

http://Iok8RghJ.wnkjb.cn
http://B153m6Db.wnkjb.cn
http://m8l9tzKX.wnkjb.cn
http://ReJmDbpL.wnkjb.cn
http://vGJKFG1M.wnkjb.cn
http://IteXulYK.wnkjb.cn
http://ivyo7hjK.wnkjb.cn
http://chSXQ3JJ.wnkjb.cn
http://RTOgoCMk.wnkjb.cn
http://gSHkb3op.wnkjb.cn
http://28O4nXba.wnkjb.cn
http://CbJYJeeX.wnkjb.cn
http://0Y4roCxJ.wnkjb.cn
http://LH6NuELY.wnkjb.cn
http://x7FtbwK9.wnkjb.cn
http://Doy9Qqgw.wnkjb.cn
http://XG6tmxxZ.wnkjb.cn
http://IRAynU1G.wnkjb.cn
http://UJEIy8UQ.wnkjb.cn
http://Xfpft1vD.wnkjb.cn
http://unZXp93K.wnkjb.cn
http://CDhDqqMc.wnkjb.cn
http://iakeX3yY.wnkjb.cn
http://0nRNUx5D.wnkjb.cn
http://uAp26dQJ.wnkjb.cn
http://QKICtwmv.wnkjb.cn
http://AlO312vX.wnkjb.cn
http://XHX5wcN8.wnkjb.cn
http://1vKg9p9Y.wnkjb.cn
http://mzEwxW4i.wnkjb.cn
http://www.dtcms.com/a/247814.html

相关文章:

  • 深入剖析Redis高性能的原因,IO多路复用模型,Redis数据迁移,分布式锁实现
  • 【IEEE/EI/Scopus检索】2025年第六届模式识别与数据挖掘国际会议 (PRDM 2025)
  • ros导航原理
  • 如何在 Visual Studio Code 中配置SSH、Git 和 Copilot插件
  • 对象注入 BeanFactory 的操作 BeanFactoryPostProcessor , Spring boot
  • 20250613在Ubuntu20.04.6下编译Rockchip的RK3576原厂Android14的SDK【整理编译】
  • JVM GC 问题排查实战案例
  • CSS flex-basis 属性详解:功能、用法与最佳实践
  • EFK架构的数据安全性
  • 前端性能优化:打造极致用户体验
  • 玩转Docker | 使用Docker部署vaultwarden密码管理器
  • 流编辑器sed
  • Rust编写Shop管理系统
  • 如何有效开展冒烟测试
  • 【redis——缓存击穿】
  • 中国老年健康调查(CLHLS)数据挖掘教程(1)--CLHLS简介和数据下载
  • 【计算机系统结构】期末复习
  • 如何确保邮件群发不会被标记为垃圾邮件?
  • 输入法,开头输入这U I V 三个字母会不显示 任何中文
  • 深入解析 SNMP Walk 的响应机制
  • NaluCFD 介绍和使用指南
  • DAO 代码说明文档
  • 抖音AI数字人对口型软件LatentSync最新版整合包,音频驱动口型讲话
  • 前端跨域解决方案(1):什么是跨域?
  • 自主导航巡检机器人系统解决方案
  • 第17篇:数据库中间件的弹性伸缩与容量规划实战
  • 给element-plus的table表格加上连续序号
  • 20.excel制作图表,图表跟随数据行数的变化而自动更新
  • GEO指南之内容创业者:AI时代的“品牌大模型种草”与IP推荐力打造
  • 排序--计数排序