Sec-WebSocket-Accept
Sec-WebSocket-Accept HTTP 响应头 用于 WebSocket 的打开 握手 过程中,表示服务器愿意升级到 WebSocket 连接。
此头部在响应中最多只能出现一次,并且具有一个指令值,该值根据相应的请求中发送的 Sec-WebSocket-Key
请求头计算得出。
语法
http
Sec-WebSocket-Accept: <hashed key>
指令
- <哈希后的密钥>
-
如果提供了
Sec-WebSocket-Key
头部,则此头部的值通过获取密钥的值,连接字符串258EAFA5-E914-47DA-95CA-C5AB0DC85B11
,并获取该连接字符串的 SHA-1 哈希值(生成一个 20 字节的值)来计算。然后,将该值进行 Base64 编码以获得此属性的值。
示例
客户端将使用如下所示的请求发起 WebSocket 握手。请注意,这从 HTTP GET
请求(HTTP/1.1 或更高版本)开始,并且包含指示升级到 Web Socket 的意图的 Upgrade
头部。它还包含 Sec-WebSocket-Key
,该密钥用于计算 Sec-WebSocket-Accept
以确认将连接升级到 Web Socket 的意图。
http
GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
服务器的响应应包含 Sec-WebSocket-Accept
头部,其值根据请求中的 Sec-WebSocket-Key
头部计算得出,并确认将连接升级到 Web Socket 的意图。
http
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
规范
规范 |
---|
未知规范 # 第 11.3.3 节 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。