WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它通过在客户端和服务器之间建立持久连接,实现了实时交互和即时数据推送。下面是 WebSocket 的基本原理:
握手阶段:WebSocket 握手与 HTTP 协议类似,客户端发送一个 HTTP 请求给服务器,请求头中包含 Upgrade 和 Connection 字段,表示要升级协议为 WebSocket,并保持连接。服务器收到请求后,返回一个带有特定响应头的 HTTP 响应,表明已成功升级为 WebSocket 连接。
数据传输阶段:握手成功后,客户端和服务器之间的连接就变成了全双工通信通道。双方可以随时发送消息给对方。消息以帧(Frame)的形式进行传输,每个帧都包含了标识信息和负载数据。
帧结构:WebSocket 帧由多个字节组成。第一个字节包含了控制位和一些标识信息,用于指示帧类型、负载长度等。根据负载长度大小不同,可能会使用额外 1 或 8 字节来表示实际负载长度。后续字节则存放着实际的数据负载。
心跳机制:为了保持长时间的连接活动并监测断开情况,在一些场景下需要使用心跳机制。客户端和服务器可以定时发送心跳帧,以保持连接的存活状态。
WebSocket 在现代 Web 应用中广泛应用,特别适用于实时性要求较高的场景,如在线聊天、实时数据更新等。相比传统的 HTTP 请求,它减少了网络延迟和资源消耗,并提供了更灵活的双向通信方式。
内容由零声教学AI助手提供,问题来源于学员提问




