WebSocket 协议
WebSocket 的特性、优势及与 HTTP 的对比
问题
说说对 WebSocket 的了解。
解答
什么是 WebSocket
WebSocket 是 HTML5 提供的一种浏览器与服务器进行全双工通信的网络技术,属于应用层协议。它基于 TCP 传输协议,并复用 HTTP 的握手通道。
相比 HTTP 的优势
支持双向通信,实时性更强
WebSocket 允许服务端主动向客户端推送数据,无需客户端轮询请求。
更好的二进制支持
WebSocket 原生支持二进制数据传输,适合传输文件、图片等场景。
较少的控制开销
连接建立后,数据交换时的协议头部很小:
- 服务端到客户端:2~10 字节(取决于数据包长度)
- 客户端到服务端:额外增加 4 字节掩码
而 HTTP 协议每次通信都需要携带完整的请求头和响应头。
支持扩展
WebSocket 协议定义了扩展机制,用户可以扩展协议或实现自定义子协议,比如支持自定义压缩算法。
关键点
- WebSocket 是基于 TCP 的应用层协议,复用 HTTP 握手通道
- 支持全双工通信,服务端可主动推送数据
- 协议头部开销小,连接建立后数据交换效率高
- 原生支持二进制传输和协议扩展
目录