乐闻世界logo
搜索文章和话题

WebSocket是什么?它与HTTP有什么区别?

2月18日 19:07

WebSocket是一种网络通信协议,提供了在单个TCP连接上进行全双工通讯的能力。它是HTML5的一部分,允许服务器和客户端之间进行实时、双向的交互通信。

核心特点

  1. 全双工通信:服务器和客户端可以同时发送和接收消息
  2. 持久连接:一旦建立连接,保持开放状态,直到显式关闭
  3. 低延迟:相比HTTP轮询,减少了握手和头部开销
  4. 实时性:服务器可以主动向客户端推送数据

与HTTP的区别

  • HTTP是请求-响应模式,WebSocket是双向通信
  • HTTP连接是短连接,WebSocket是长连接
  • HTTP每次请求都需要携带完整的头部,WebSocket连接建立后只需少量数据

握手过程

WebSocket连接通过HTTP升级请求建立:

  1. 客户端发送HTTP GET请求,包含Upgrade: websocket头部
  2. 服务器返回101 Switching Protocols响应
  3. 连接升级为WebSocket协议

应用场景

  • 实时聊天应用
  • 在线游戏
  • 股票行情推送
  • 协同编辑
  • 实时监控系统
标签:WebSocket