WebSocket概念原理及使用注意事项 - 实践

1. 概念与原理

什么是 WebSocket?

WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。

关键特性:

  • 全双工通信:客户端和服务器可以同时发送和接收数据,就像打电话一样。

  • 建立在 TCP 之上:WebSocket 本身是一个应用层协议,依赖于底层的 TCP 连接。

  • 低开销:在建立连接后,数据传输的头信息很小,通常只有 2-10 字节,远小于 HTTP 请求的头部。

  • 实时性:服务器可以主动、即时地向客户端推送消息,无需客户端轮询。

与 HTTP 的关系与区别
  • 联系:WebSocket 连接通常通过一个 HTTP 升级请求 来建立。客户端发送一个特殊的 HTTP 请求,告诉服务器希望将协议升级为 WebSocket。

  • 区别

    特性HTTPWebSocket
    通信模式半双工(请求-响应)全双工
    连接生命周期短连接(通常)长连接
    数据推送只能由客户端发起(轮询)服务端可主动推送
    头部开销每次请求/响应都包含完整头部连接建立后,头部极小
工作原理:握手与数据传输
  1. 握手阶段

    • 客户端发送一个 HTTP 请求,头信息中包含:

      text

      GET /chat HTTP/1.1
      Host: server.example.com
      Upgrade: websocket
      Connection: Upgrade
      Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== // 随机生成的密钥
      Sec-WebSocket-Version: 13
    • 服务器返回一个 HTTP 101 状态码(切换协议)的响应:

      text

      HTTP/1.1 101 Switching Protocols
      Upgrade: websocket
      Connection: Upgrade
      Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+
posted on 2025-12-13 20:21  ljbguanli  阅读(3)  评论(0)    收藏  举报