En-tête Sec-WebSocket-Version
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
L'en-tête de requête et de réponse HTTP Sec-WebSocket-Version est utilisé dans la poignée de main du WebSocket d'ouverture du WebSocket pour indiquer le protocole WebSocket pris en charge par le client, et les versions du protocole prises en charge par le serveur si celui-ci ne prend pas en charge la version définie dans la requête.
Cet en-tête ne peut apparaître qu'une seule fois dans une requête et définit la version du protocole WebSocket utilisée par l'application Web.
La version actuelle du protocole au moment de la rédaction est 13.
L'en-tête est automatiquement ajouté aux requêtes par les agents utilisateurs lorsqu'une connexion WebSocket est établie.
Le serveur utilise la version pour déterminer s'il peut comprendre le protocole.
Si le serveur ne prend pas en charge la version, ou si un en-tête de la poignée de main n'est pas compris ou a une valeur incorrecte, le serveur doit envoyer une réponse avec le statut 400 Bad Request et fermer immédiatement le socket.
Il doit également inclure Sec-WebSocket-Version dans la réponse 400, en indiquant les versions qu'il prend en charge.
Les versions peuvent être définies dans des en-têtes individuels, ou en tant que valeurs séparées par des virgules dans un seul en-tête.
L'en-tête ne doit pas être envoyé dans les réponses si le serveur comprend la version définie par le client.
| Type d'en-tête | En-tête de réponse |
|---|---|
| En-tête de requête interdit | Oui (préfixe Sec-) |
Syntaxe
Requête :
Sec-WebSocket-Version: <version>
Réponse (en cas d'erreur uniquement) :
Sec-WebSocket-Version: <server-supported-versions>
Directives
<version>-
La version du protocole WebSocket que le client souhaite utiliser pour communiquer avec le serveur. Ce nombre doit être la version la plus récente possible répertoriée dans le Registre des numéros de version WebSocket de l'IANA (angl.). La version finale la plus récente du protocole WebSocket est la version 13.
<server-supported-versions>-
En cas d'erreur, une liste des versions du protocole WebSocket prises en charge par le serveur, séparées par des virgules. L'en-tête n'est pas envoyé dans les réponses si
<version>est pris en charge.
Exemples
>Poignée de main d'ouverture du WebSocket
La version prise en charge par le client est définie dans la requête de poignée de main WebSocket d'origine.
Pour le protocole actuel, la version est « 13 », comme indiqué ci-dessous.
GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Si le serveur prend en charge la version 13 du protocole, alors Sec-WebSocket-Version n'apparaît pas dans la réponse.
Spécifications
| Spécification |
|---|
| The WebSocket Protocol> # section-11.3.5> |
Compatibilité des navigateurs
Voir aussi
- L'en-tête
Sec-WebSocket-Accept - L'en-tête
Sec-WebSocket-Key - L'en-tête
Sec-WebSocket-Protocol - L'en-tête
Sec-WebSocket-Extensions - La poignée de main du WebSocket dans Écrire des serveurs WebSocket