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
连接 短连接 长连接
通信方式 半双工 全双工
服务端主动推送 ❌ 不行 ✔️ 可以
数据报文 头部大,冗余 头部小,效率高
实时性
应用场景 普通页面请求 聊天、股票、游戏等实时应用
相关推荐
幼儿园蛋小黑2 小时前
TCP 并发:从原理到高并发实践
网络·网络协议·tcp/ip
我爱cope4 小时前
【计算机网络 | 网络层11:ICMP 协议:Ping 和 Traceroute 的底层原理】
网络·学习·计算机网络
驭渊的小故事5 小时前
网络原理04(http协议详细解析3)(2000详细解析HTTPS的工作原理)
网络·网络协议·http
额额额对了6 小时前
Linux 进程间通信(IPC)核心机制:消息队列、共享内存与信号量详解
linux·网络·网络协议
IPdodo_6 小时前
2026年爬虫代理 IP 选择指南:从可用率、延迟到成本验收
网络协议·tcp/ip·scrapy·http·https·beautifulsoup·httpx
程序员夏洛7 小时前
HTTP 请求包含哪些内容,请求头和请求体有哪些类型?
网络·网络协议·http
kkkkkkkkkk_Z8 小时前
学嵌入式和Linux应用编程|学习日记:计算机网络基础
linux·学习·计算机网络
瓦格哈儿9 小时前
删掉旧 SSL 证书会影响线上业务吗?风险点梳理
网络协议·https·ssl
美酒没故事°10 小时前
https和tls有什么区别?
网络协议·http·https
zyf10441611 小时前
暑期实践日志 Day46:复盘第六章,规整对应实践成果
学习·计算机网络·剪辑·暑期实践·课题任务