Sec-WebSocket-Accept 头
HTTP Sec-WebSocket-Accept 响应头用于 WebSocket 开启握手,表示服务器愿意升级到 WebSocket 连接。
此头在响应中最多只能出现一次,其指令值根据相应请求中发送的 Sec-WebSocket-Key 请求头计算。
语法
http
Sec-WebSocket-Accept: <hashed key>
指令
<hashed key>-
如果提供了
Sec-WebSocket-Key头,则此头的值的计算方法是:取键的值,连接字符串258EAFA5-E914-47DA-95CA-C5AB0DC85B11,然后对连接后的字符串进行 SHA-1 哈希 — 得到一个 20 字节的值。然后将该值进行 base64 编码以获得此属性的值。
示例
WebSocket 开启握手
客户端将通过以下请求发起 WebSocket 握手。请注意,这最初是一个 HTTP GET 请求(HTTP/1.1 或更高版本),并包含 Upgrade 头,表示意图升级到 WebSocket 连接。它还包含 Sec-WebSocket-Key,用于计算 Sec-WebSocket-Accept,以确认将连接升级到 WebSocket 连接的意图。
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 头计算,并确认将连接升级到 WebSocket 连接的意图。
http
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
规范
| 规范 |
|---|
| WebSocket 协议 # 第 11.3.3 节 |
浏览器兼容性
加载中…