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 的浏览器中加载。

另请参阅