Sec-WebSocket-Version 頭

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

HTTP Sec-WebSocket-Version 請求響應頭用於 WebSocket 開啟握手中,以表明客戶端支援的 WebSocket 協議版本,以及如果伺服器支援請求中指定的版本,則表明伺服器支援的協議版本。

此頭在請求中只能出現一次,並指定 Web 應用程式正在使用的 WebSocket 版本。在撰寫本文時,協議的當前版本是 13。當建立 WebSocket 連線時,使用者代理會自動將此頭新增到請求中。

伺服器使用此版本來確定它是否能夠理解協議。如果伺服器不支援該版本,或者握手中的任何頭不被理解或具有不正確的值,伺服器應傳送狀態為 400 Bad Request 的響應,並立即關閉套接字。它還應在 400 響應中包含 Sec-WebSocket-Version,列出它所支援的版本。版本可以在單獨的頭中指定,也可以作為逗號分隔的值在單個頭中指定。

如果伺服器理解客戶端指定的版本,則不應在響應中傳送此頭。

頭型別 響應頭
禁止請求頭 是 (Sec- 字首)

語法

Request

http
Sec-WebSocket-Version: <version>

響應(僅在錯誤時)

http
Sec-WebSocket-Version: <server-supported-versions>

指令

<版本>

客戶端在與伺服器通訊時希望使用的 WebSocket 協議版本。此數字應是 IANA WebSocket 版本號登錄檔中列出的最新版本。WebSocket 協議的最新最終版本是版本 13。

<伺服器支援的版本>

出現錯誤時,伺服器支援的 WebSocket 協議版本列表,用逗號分隔。如果支援 <版本>,則不傳送此頭。

示例

WebSocket 開啟握手

客戶端支援的版本在原始 WebSocket 握手請求中指定。對於當前協議,版本是“13”,如下所示。

http
GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13

如果伺服器支援協議版本 13,則 Sec-WebSocket-Version 不會出現在響應中。

規範

規範
WebSocket 協議
# section-11.3.5

瀏覽器相容性

另見