第 41 篇:WebSocket——从HTTP握手到全双工长连接
📅 2026/7/3 1:56:30
👁️ 阅读次数
📝 编程学习
第41篇:WebSocket——从HTTP握手到全双工长连接
抓包实战系列第21篇 | 上一篇聊了HTTP缓存和304 | 本文全长约12000字,阅读需要25分钟
写在前面
先问一个问题:WebSocket算不算HTTP?
这个问题我问过不少人,得到的回答五花八门。有人说"WebSocket就是HTTP的一种",有人说"这俩完全不一样",还有人说"WebSocket是基于HTTP的"。
都有道理,但都不精确。
我的理解是:WebSocket不是HTTP的升级版,也不是HTTP的替代品,它是借助HTTP完成一次"换频道"操作,换完之后就不再按HTTP的规矩来了。
好比你去政务大厅办事,先在门口登记(HTTP握手),登记完了工作人员带你进内部办公区(WebSocket通道),进去之后你们直接对话,不用再走窗口排队了(全双工通信)。
这个类比不完美,但能帮我们记住一个关键点:WebSocket连接的前半段是HTTP,后半段不是。
这篇文章我想从抓包的角度,把WebSocket从握手到断开的整个过程拆开看。全程配合实际抓包截图和命令行操作,不讲虚的。
一、HTTP的老问题:服务端想主动说话,难
1.1 请求-响应模型的局限
HTTP的设计非常简洁——客户端
编程学习
技术分享
实战经验