WebSocket | 一点简单了解

文章目录

    • [什么是 WebSocket 协议?](#什么是 WebSocket 协议?)
    • [WebSocket 的工作原理?](#WebSocket 的工作原理?)
    • [WebSocket 与 HTTP 的区别?](#WebSocket 与 HTTP 的区别?)
    • [WebSocket 的典型应用场景?](#WebSocket 的典型应用场景?)
    • [WebSocket 为什么比轮询更高效?](#WebSocket 为什么比轮询更高效?)
    • [WebSocket 如何保持心跳?](#WebSocket 如何保持心跳?)
    • [WebSocket 如何处理断线重连?](#WebSocket 如何处理断线重连?)
    • [WebSocket 的安全性如何保障?](#WebSocket 的安全性如何保障?)

什么是 WebSocket 协议?

  • WebSocket 是一种在 单个 TCP 连接 上 进行 全双工通信 的协议。
  • HTTP 是 请求-响应模型(客户端主动,请求一次返回一次)。
  • WebSocket 是 持久化连接(连接建立后,客户端和服务端都可以随时互发消息)。

WebSocket 的工作原理?

  • WebSocket 是在 一个已建立的 TCP 连接上,通过一次 HTTP 升级握手把协议从 HTTP 切换成 WebSocket,从此客户端和服务器之间可以进行 双向、低延迟、持续的帧(frame)级别通信。
  1. 客户端与服务器建立 TCP 连接(三次握手,TCP 层,浏览器自动处理)。
  2. 客户端发起 HTTP 升级(Upgrade)握手,请求从 HTTP 切换到 WebSocket。
  3. 服务器校验请求并返回 101 Switching Protocols,握手完成,协议升级。
  4. 握手完成后,双方通过 WebSocket 帧(frame) 在同一 TCP 连接上往返发送消息(双向)。
  5. 任意一方可发送 Close 帧关闭连接。
  • WebSocket 连接的建立过程分为两个阶段:首先客户端和服务器通过 TCP 三次握手建立底层连接;然后客户端发起一个带有 Upgrade: websocket 的 HTTP 请求;服务端返回 101 Switching Protocols 响应后,协议正式从 HTTP 升级为 WebSocket。之后双方就在同一个 TCP 连接上进行全双工通信,无需再频繁建立连接。
go 复制代码
Client                          Server
<----- TCP three-way handshake ----------> (完成)
GET /chat  Upgrade: websocket  --------->  (HTTP 握手请求)
<----- 101 Switching Protocols ----------> (握手成功)
<--------------------------------------->  (WebSocket frames 双向通信)
Client 或 Server 发送 Close 帧 ---------->  (连接关闭)

WebSocket 与 HTTP 的区别?

WebSocket 的典型应用场景?

  1. 在线聊天、弹幕系统
  2. 股票 / 币价 实时推送
  3. 在线游戏状态同步
  4. 协同编辑(如多人文档编辑)
  5. 实时监控系统(如服务器状态、日志推送)

WebSocket 为什么比轮询更高效?

  • 轮询每次都建立 HTTP 请求,带大量请求头和握手开销。
  • WebSocket 连接只建立一次,之后实时推送。
  • 减少延迟和网络带宽消耗。

WebSocket 如何保持心跳?

  • 常见心跳机制:
    1. 客户端周期性发送 Ping 帧;
    2. 服务端响应 Pong 帧;
    3. 若超时未响应则断开重连。

WebSocket 如何处理断线重连?

  • 客户端检测到连接断开(或心跳超时);
  • 重新发起 WebSocket 连接;
  • 通常结合 指数退避算法 或 固定间隔重连。

WebSocket 的安全性如何保障?

  • 使用 wss://(基于 TLS 的 WebSocket);
  • 验证 token;
  • 控制消息大小、速率;
  • 设置连接超时。
相关推荐
白驹过隙^^1 小时前
OB-USP-AGENT安装使用方法
数据库·经验分享·网络协议·tcp/ip·github·ssl
白帽子黑客罗哥1 小时前
渗透测试技术:从入门到实战的完整指南
网络·安全·web安全·渗透测试·漏洞挖掘·网络安全培训
北邮刘老师1 小时前
【智能体互联协议解析】ACPs/AIP为什么还在用“落后”的“中心化”架构?
网络·人工智能·架构·大模型·智能体·智能体互联网
winfield8211 小时前
MCP 协议详解
开发语言·网络·qt
sdszoe49221 小时前
IP地址规划与VLSM技术
网络·网络协议·tcp/ip·vlsm·ip地址规划
m0_569531012 小时前
《K8s 网络入门到进阶:Service 与 Ingress 原理、部署方案及核心区别对比》
网络·容器·kubernetes
广东大榕树信息科技有限公司2 小时前
当运维管理面临挑战时,如何借助动环监控系统提升响应能力?
运维·网络·物联网·国产动环监控系统·动环监控系统
北京耐用通信2 小时前
耐达讯自动化网关:用Profinet唤醒沉睡的DeviceNet流量计,省下60%改造费!
人工智能·科技·物联网·网络协议·自动化·信息与通信
狂奔的sherry3 小时前
WIFI后端功能问题解决
网络
yimengsama3 小时前
VMWare虚拟机如何连接U盘
linux·运维·服务器·网络·windows·经验分享·远程工作