WebSocket 和 Http 的核心区别

WebSocket 和 Http 的核心区别

一、WebSocket 和 HTTP 的核心区别

1. 连接方式不同

HTTP:短连接 / 半双工

  • HTTP 是 请求--响应模式

  • 必须由客户端发起请求,服务端才能返回数据

  • 一次请求结束后,连接通常关闭(除非使用 keep-alive)

📌 因此,HTTP 不能主动推送消息

(除非用轮询、长轮询、SSE 等 hack 手段)


WebSocket:长连接 / 全双工

  • 一旦建立连接(通过 HTTP 升级 handshake)

  • 客户端和服务端可以互相主动发消息

  • 持续保持连接,不需要重复建立链接

📌 WebSocket 是 真正的全双工通信

类似直接拿了一条 TCP 通道来传输数据。


2. 协议不同

  • HTTP 使用 http://https://

  • WebSocket 使用 ws://wss://

WebSocket 在建立连接时使用 HTTP 协议,然后通过 Upgrade: websocket 切换协议。


3. 通信效率不同

HTTP

  • 每次请求都需要完整的 HTTP 报文头(很大)

  • 大量无意义的 header 消耗带宽

WebSocket

  • 建立连接后,每次消息的头部非常小(通常只有 2 字节)

  • 可以进行二进制传输

  • 性能更高


4. 服务端推送能力

协议 服务端能主动发消息?
HTTP ❌ 不能(必须由客户端请求)
WebSocket ✔️ 可以随时主动推送

二、WebSocket 的主要优点

5. 真正的全双工通信

客户端和服务端随时可以互相发送数据 → 低延迟


6. 适合实时应用

例如:

  • 实时聊天(微信网页版、企业 IM)

  • 实时通知系统(订单变化、消息提醒)

  • 实时体育比分刷新

  • 股票行情 / K 线图

  • 实时在线协作(Google Docs)

  • 游戏匹配、实时同步


7. 网络开销小

WebSocket 数据包头非常小(几字节),对比 HTTP 动辄上百字节的头部 → 带宽消耗更少


8. 保持长连接,延迟更低

不用重复建立 TCP 连接

不用反复发送完整 HTTP 报文

响应速度提升明显。


9. 支持二进制格式

可传输:

  • ArrayBuffer

  • Blob

非常适合:

  • 音视频数据

  • 游戏状态同步

  • IoT 设备数据传输


三、总结:WebSocket vs HTTP

项目 HTTP WebSocket
连接 短连接 长连接
通信方式 半双工 全双工
服务端主动推送 ❌ 不行 ✔️ 可以
数据报文 头部大,冗余 头部小,效率高
实时性
应用场景 普通页面请求 聊天、股票、游戏等实时应用
相关推荐
liann1195 小时前
3.2_红队攻击框架--MITRE ATT&CK‌
python·网络协议·安全·网络安全·系统安全·信息与通信
zjun10017 小时前
TCP专栏-1.TCP协议概念说明
网络·网络协议·tcp/ip
仍然.9 小时前
网络编程(二)---TCP字节流套接字编程
网络·网络协议·tcp/ip
Ether IC Verifier11 小时前
OSI网络七层协议详细介绍
服务器·网络·网络协议·计算机网络·php·dpu
环流_12 小时前
HTTP 协议的基本格式
java·网络协议·http
AIwenIPgeolocation13 小时前
IP地址数据服务:赋能游戏行业体验优化与精细化运营
网络协议·tcp/ip·游戏
TechWayfarer14 小时前
2026年IP归属地查询平台选型指南:金融风控、异地登录、离线库全场景实测
网络·网络协议·tcp/ip
Rust研习社14 小时前
Rust + PostgreSQL 极简技术栈应用开发
开发语言·数据库·后端·http·postgresql·rust
信徒_14 小时前
技术选型 RPC 框架
网络·网络协议·rpc