当前位置: 首页 > 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位,是长度

相关文章:

  • 深入剖析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 的响应机制
  • 手表交易网站/佛山市seo推广联系方式
  • 日本人做的中文网站/seo是什么意思新手怎么做seo
  • 小程序代理运营/seo关键词优化排名
  • 受欢迎的模板网站建设/郑州疫情最新动态
  • 有哪些网站可以做兼职/推广文章的推广渠道
  • wordpress单栏/360seo优化