WebSocket 协议本质:从“写信”到“打电话”的通信革命
用户问题原文:什么是 WebSocket?它和 HTTP 有什么本质区别?
在构建实时系统时,无数工程师都曾陷入一个困境:明明 TCP 是全双工的,为什么基于它的 HTTP 却只能“你问我答”?当你的金融行情推送因轮询延迟而错失交易良机,当你在线客服系统因连接频繁重建而消耗大量资源,当你 IoT 设备因无法接收服务端指令而变成“聋子”——这些问题的根源,都指向了传统 HTTP 协议在实时通信场景下的结构性缺陷。WebSocket 的诞生,正是为了解决这一根本矛盾。本文将带你穿透 RFC 6455 标准,从协议设计哲学、握手机制、通信模型三个维度,彻底厘清 WebSocket 与 HTTP 的本质差异,并通过金融行情推送这一真实场景,揭示其如何实现从“写信”到“打电话”的通信范式跃迁。
一、生活化类比:从“写信”到“打电话”的通信革命
HTTP:像“写信”一样的请求-响应模型
想象一下传统的邮政通信:
- 你(客户端)必须先写一封信(HTTP Request),投入邮筒。
- 邮局(网络)将信件送达对方(服务器)。
- 对方收到信后,才能回信(HTTP Response)给你。
- 整个过程是单向、