WebSocket通过HTTP升级握手建立持久全双工连接:客户端发含Upgrade、Sec-WebSocket-Key的请求,服务器返回101状态及Sec-WebSocket-Accept校验;连接后通过onopen/onmessage/onclose/onerror事件收发数据,以帧而非HTTP报文传输,支持文本、二进制、Ping/Pong;需用wss://加密,服务器需校验Origin,原生无自动重连。

WebSocket 在 JavaScript 中通过一次 HTTP 握手建立持久、全双工的 TCP 连接,之后客户端和服务器可随时互发数据,无需重复请求。
握手阶段:用 HTTP 升级协议
浏览器发起一个带特殊头的 HTTP 请求:
- Upgrade: websocket 和 Connection: Upgrade 表明想切换协议
- Sec-WebSocket-Key 是客户端生成的随机 Base64 字符串,用于防伪造
- 服务器验证后,返回 HTTP 101 Switching Protocols 状态码
- 响应头含 Sec-WebSocket-Accept —— 由客户端密钥经固定算法计算得出,供客户端校验
握手成功,连接就脱离 HTTP,进入 WebSocket 帧通信模式。
连接建立后:监听事件收发消息
JS 使用 WebSocket 构造函数创建实例,并绑定关键事件:
立即学习“Java免费学习笔记(深入)”;
标签: javascript java js 编码 浏览器 websocket switch 跨域 状态码
还木有评论哦,快来抢沙发吧~