
WebSocket 和 Socket 的区别,90% 的开发者都答不完整
"WebSocket 和 Socket 有什么区别"是后端面试的高频题,但流传的答案多半似是而非。本文从三个常见误解切入,先厘清本质:Socket 是操作系统提供的传输层编程接口而非协议,同一把"扳手"能拧出 TCP、UDP、Raw 三种连接;WebSocket 则是应用层协议,借 HTTP 完成握手升级后,便作为独立协议跑在 TCP 上。接着从握手方式、字节流与消息帧、系统权限与浏览器沙箱等维度对比两者,给出纯协议层测试中吞吐量约 12 倍、延迟约 20–50 倍的直观数据,并落到选型实践:浏览器场景用 WebSocket,服务端之间首选 TCP Socket;QQ、微信选择 TCP 私有协议,根源在原生 App 阵地与弱网、电量、多路复用的极致工程考量。最后深入浏览器沙箱为何锁死 TCP Socket(内网扫描、DNS 重绑定等五类攻击),以及腾讯 TARS 用协议转换网关实现跨平台统一接入的架构设计。


