Sec-WebSocket-Version 头
HTTP Sec-WebSocket-Version 请求和响应头用于 WebSocket 开启握手中,以表明客户端支持的 WebSocket 协议版本,以及如果服务器不支持请求中指定的版本,则表明服务器支持的协议版本。
此头在请求中只能出现一次,并指定 Web 应用程序正在使用的 WebSocket 版本。在撰写本文时,协议的当前版本是 13。当建立 WebSocket
连接时,用户代理会自动将此头添加到请求中。
服务器使用此版本来确定它是否能够理解协议。如果服务器不支持该版本,或者握手中的任何头不被理解或具有不正确的值,服务器应发送状态为 400 Bad Request
的响应,并立即关闭套接字。它还应在 400
响应中包含 Sec-WebSocket-Version
,列出它所支持的版本。版本可以在单独的头中指定,也可以作为逗号分隔的值在单个头中指定。
如果服务器理解客户端指定的版本,则不应在响应中发送此头。
语法
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 |
浏览器兼容性
加载中…