引言
在 Web 应用日益复杂的今天,实时通信已成为不可或缺的能力。WebSocket 协议的出现,正是为了解决 HTTP 协议在实时通信场景下的天然不足。
一、为什么需要 WebSocket
HTTP 协议本质上是一种请求-响应模型:客户端发起请求,服务端返回响应。这种模式在实时场景下面临三大痛点:高延迟、高开销和单向性。WebSocket 协议在 2011 年被 IETF 标准化为 RFC 6455,提供全双工、双向通信能力。
二、WebSocket 握手过程
WebSocket 连接从 HTTP 请求开始,称为"协议升级"。客户端发送 Upgrade: websocket 和 Connection: Upgrade 头,配合 Sec-WebSocket-Key 随机 Base64 编码字符串。服务端将该 Key 与全局 GUID 拼接,计算 SHA-1 后返回 Sec-WebSocket-Accept。
三、帧结构与数据传输
WebSocket 数据传输以帧为最小单位。帧头包含 FIN 位、操作码(Text/Binary/Close/Ping/Pong)、Mask 位和 Payload 长度。客户端到服务端的帧必须经过掩码处理,防止缓存中毒攻击。
四、工程实践
心跳保活:Ping/Pong 帧检测连接状态;断线重连:指数退避算法 + 消息重传队列;安全加固:WSS(TLS)加密 + Origin 验证。
五、应用场景
即时通讯、实时数据展示、协同编辑、在线游戏、远程控制。

发表评论 取消回复