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
连接 短连接 长连接
通信方式 半双工 全双工
服务端主动推送 ❌ 不行 ✔️ 可以
数据报文 头部大,冗余 头部小,效率高
实时性
应用场景 普通页面请求 聊天、股票、游戏等实时应用
相关推荐
跨境牛马哥1 小时前
2026爬虫开发:Playwright对决Puppeteer
大数据·网络·网络协议
HMS工业网络1 小时前
使用电脑快速测试DeviceNet设备通讯
网络协议·通讯协议·devicenet·设备通讯
小短腿的代码世界1 小时前
QHttpEngine深度解析:Qt嵌入式HTTP服务端的工业级架构与性能调优
qt·http·架构
Ether IC Verifier2 小时前
TCP滑动窗口与流量控制详解
网络·网络协议·tcp/ip
明月(Alioo)2 小时前
macOS 上 Charles 代理 HTTPS 抓包失败问题完整解决方案
网络协议·macos·https
roman_日积跬步-终至千里2 小时前
【系统架构师-综合题(9)】 计算机网络知识点
计算机网络·系统架构·智能路由器
pengyi8710152 小时前
HTTP代理抓包实操教程,零基础监控IP请求与响应数据
网络协议·tcp/ip·http
.千余2 小时前
【Linux】Socket编程UDP
linux·运维·服务器·开发语言·网络协议·学习·udp
长谷深风1112 小时前
从 URI 区分到 HTTP1.0/1.1/2/3 发展详解【个人八股】
计算机网络·长连接·服务器推送·http 协议·uri、url·http 版本演进·quic 协议
小辰记事本11 小时前
从零读懂RoCEv2数据包构造:从WQE到线缆上的完整旅程
服务器·网络·网络协议·rdma