Socket vs WebSocket

三个字母,本质上差了一整层协议栈

层级 Socket WebSocket
所属层级 传输层(TCP/UDP) 应用层(HTTP之上)
连接方式 直接建立 TCP/UDP 连接 先通过 HTTP 握手,再升级为 WebSocket 连接
数据格式 二进制字节流 帧(Frame)结构,可是文本帧/二进制帧
通信方向 默认是双向(TCP流) 真正的全双工通信,浏览器可直接收发
典型端口 TCP: 80/443/任意 ws:// 用80,wss:// 用443
使用场景 程序间通信、嵌入式、底层传输 浏览器实时通信(IM、推送、视频)

Socket 是"机制",WebSocket 是"协议"

1、Socket 是操作系统提供的 通信接口

它是"怎么通信"的底层通道。

举个例子:

复制代码
// TCP Socket
int fd = socket(AF_INET, SOCK_STREAM, 0);
connect(fd, ...);
send(fd, buf, len, 0);
recv(fd, buf, len, 0);

这只是两端程序之间的字节流,谁都可以定义内容(比如你定义 JSON 协议、自定义命令)。


2、WebSocket 是建立在 HTTP 上的一种 应用层协议

它定义了"浏览器如何与服务器保持长连接"的标准做法。

握手过程(HTTP 请求头):

复制代码
GET /chat HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: ...

服务器响应:

复制代码
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: ...

握手成功后,HTTP连接升级为 WebSocket 通道(TCP 长连接),之后就可以实时收发数据。


⚙️ 三、关系图一看就懂

复制代码
浏览器 <---HTTP握手---> 服务器
           ↓ 升级
      <=== WebSocket 全双工通道 ===>

底层仍然是:
  TCP Socket → send()/recv()

也就是说:

WebSocket 本质上是用 HTTP 协商,然后在 TCP Socket 上跑自定义的帧格式。

场景 推荐协议 说明
C++ 程序 ↔ C++ 程序 原生 Socket (TCP/UDP) 性能高、自由度高
浏览器 ↔ 后端服务 WebSocket 兼容 Web 平台、可穿透防火墙
短期请求 HTTP/HTTPS 一次性通信(REST API)
长期实时通信 WebSocket 实时推送、消息同步
类比 Socket WebSocket
比喻 电话线路 打电话的"约定规则"
你负责 拨号、接通、收发电流 用标准话语通话
特点 自由、裸数据 标准化、跨平台

Socket 是通信的"工具"
WebSocket 是一种基于 Socket 的"通信协议"

专为浏览器实时通信设计。

相关推荐
王二端茶倒水21 小时前
商业 WiFi 不是免费上网,而是门店数字化的入口
网络协议
网络研究院6 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest6 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_961845156 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序员mine6 天前
HTTPS-TLS加密与证书完全指南(中)
网络协议·https·ssl
程序猿阿伟6 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
之歆6 天前
现代 HTTP 客户端深度解析:Fetch 与 Axios
chrome·网络协议·http
InHand云飞小白6 天前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器