这是一个非常经典的 Web 开发面试题,也是理解现代实时 Web 应用的关键。 以下是对 WebSocket 的详细解释,以及它与 HTTP 协议的深度对比。 --- 一、 什么是 WebSocket? WebSocket 是一种网络传输协议,位于 OSI 模型的应用层。它基于 TCP 协议,允许在单个 TCP 连接上进行全双工(Full-Duplex)通信。 简单来说,WebSocket 使得客户端和服务器之间的数据交换变得更加简单高效。 核心特点: 1. 全双工通信: 允许数据同时在两个方向上传输。服务器可以主动向客户端推送数据,客户端也可以随时向服务器发送数据。 2. 持久连接: 一旦建立连接,除非一方主动断开,否则连接一直保持打开状态。 3. 建立在 TCP 之上: 它依赖于 TCP 协议来传输数据。 4. 握手机制: WebSocket 在建立连接时,会借用 HTTP 协议来完成一次“握手”(Handshake),握手成功后,协议升级为 WebSocket,随后的通信就不再使用 HTTP 了。 --- 二、 为什么需要 WebSocket?(背景) 在 WebSocke...