Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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 :

http
Sec-WebSocket-Version: <version>

Réponse (en cas d'erreur uniquement) :

http
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.

http
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