WebSocket 是一种应用层网络协议,基于 TCP 协议实现,主要用于解决客户端与服务器之间的实时双向通信问题,尤其适用于网页环境。
核心特点
- **全双工通信:**建立连接后,客户端和服务器可同时双向发送数据,打破 HTTP 协议"请求-响应"的单向限制。
- **持久连接:**连接一旦建立(通过一次 HTTP 握手升级),会一直保持,避免 HTTP 频繁建立连接的开销。
- **低延迟:**无需重复发送请求头,数据传输效率高,适合实时场景(如在线聊天、实时游戏、股票行情推送等)。
与 HTTP 的关系
- WebSocket 握手阶段依赖 HTTP 协议:客户端通过发送 HTTP 请求(含 Upgrade: websocket 头部)发起协议升级,服务器同意后切换至 WebSocket 连接。
- 连接建立后,不再使用 HTTP 协议,直接基于 TCP 传输数据。
典型应用场景
-
即时通讯(如网页聊天工具)
-
实时数据展示(如监控仪表盘、直播弹幕)
-
协作工具(如多人在线文档编辑)
简单说,WebSocket 让服务器能主动"推送"数据给客户端,而不用等待客户端一次次请求,是实时Web应用的核心技术之一。