Sec-WebSocket-Version header
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The HTTPSec-WebSocket-Versionrequest andresponse header is used in theWebSocket openinghandshake to indicate the WebSocket protocol supported by the client, and the protocol versions supported by the server if it doesnot support the version specified in the request.
The header can only appear once in a request, and specifies the WebSocket version that web application is using.The current version of the protocol at time of writing is 13.The header is automatically added to requests by user agents when aWebSocket
connection is established.
The server uses the version to determine if it can understand the protocol.If the server doesn't support the version, or any header in the handshake is not understood or has an incorrect value, the server should send a response with status400 Bad Request
and immediately close the socket.It should also includeSec-WebSocket-Version
in the400
response, listing the versions that it does support.The versions can be specified in individual headers, or as comma-separate values in a single header.
The header should not be sent in responses if the server understands the version specified by the client.
Header type | Response header |
---|---|
Forbidden request header | Yes (Sec- prefix) |
Syntax
Request
Sec-WebSocket-Version: <version>
Response (on error only):
Sec-WebSocket-Version: <server-supported-versions>
Directives
<version>
The WebSocket protocol version the client wishes to use when communicating with the server.This number should be the most recent version possible listed in theIANA WebSocket Version Number Registry.The most recent final version of the WebSocket protocol is version 13.
<server-supported-versions>
On error, a comma-delineated list of the WebSocket protocol versions supported by the server.The header is not sent in responses if
<version>
is supported.
Examples
WebSocket opening handshake
The version supported by the client is specified in the originalWebSocket
handshake request.For the current protocol, the version is "13", as shown below.
GET /chat HTTP/1.1Host: example.com:8000Upgrade: websocketConnection: UpgradeSec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==Sec-WebSocket-Version: 13
If the server supports version 13 of the protocol, thenSec-WebSocket-Version
will not appear in the response.
Specifications
Specification |
---|
The WebSocket Protocol # section-11.3.5 |
Browser compatibility
See also
Sec-WebSocket-Accept
Sec-WebSocket-Key
Sec-WebSocket-Protocol
Sec-WebSocket-Extensions
- The WebSocket handshake inWriting WebSocket servers