WebSocket 协议

WebSocket 的特性、优势及与 HTTP 的对比

问题

说说对 WebSocket 的了解。

解答

什么是 WebSocket

WebSocket 是 HTML5 提供的一种浏览器与服务器进行全双工通信的网络技术,属于应用层协议。它基于 TCP 传输协议,并复用 HTTP 的握手通道。

相比 HTTP 的优势

支持双向通信,实时性更强

WebSocket 允许服务端主动向客户端推送数据,无需客户端轮询请求。

更好的二进制支持

WebSocket 原生支持二进制数据传输,适合传输文件、图片等场景。

较少的控制开销

连接建立后,数据交换时的协议头部很小:

  • 服务端到客户端:2~10 字节(取决于数据包长度)
  • 客户端到服务端:额外增加 4 字节掩码

而 HTTP 协议每次通信都需要携带完整的请求头和响应头。

支持扩展

WebSocket 协议定义了扩展机制,用户可以扩展协议或实现自定义子协议,比如支持自定义压缩算法。

关键点

  • WebSocket 是基于 TCP 的应用层协议,复用 HTTP 握手通道
  • 支持全双工通信,服务端可主动推送数据
  • 协议头部开销小,连接建立后数据交换效率高
  • 原生支持二进制传输和协议扩展