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 節 |
瀏覽器相容性
載入中…