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-Accept

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 réponse HTTP Sec-WebSocket-Accept est utilisé dans la poignée de main d'ouverture de WebSocket pour indiquer que le serveur est prêt à passer à une connexion WebSocket.

Cet en-tête ne doit apparaître qu'une seule fois dans la réponse et possède une valeur de directive qui est calculée à partir de l'en-tête de requête Sec-WebSocket-Key envoyé dans la requête correspondante.

Type d'en-tête En-tête de réponse

Syntaxe

http
Sec-WebSocket-Accept: <hashed key>

Directives

<hashed key>

Si un en-tête Sec-WebSocket-Key a été fourni, la valeur de cet en-tête est calculée en prenant la valeur de la clé, en concaténant la chaîne de caractères 258EAFA5-E914-47DA-95CA-C5AB0DC85B11, et en prenant le hachage SHA-1 (angl.) de cette chaîne de caractères concaténée — ce qui donne une valeur de 20 octets. Cette valeur est ensuite encodée en base64 pour obtenir la valeur de cette propriété.

Exemples

Poignée de main d'ouverture du WebSocket

Le client initie une poignée de main WebSocket avec une requête comme suit. Notez que cela commence comme une requête HTTP GET (HTTP/1.1 ou ultérieure) et inclut l'en-tête Upgrade indiquant l'intention de passer à une connexion WebSocket. Il inclut également Sec-WebSocket-Key, qui est utilisé dans le calcul de Sec-WebSocket-Accept pour confirmer l'intention de passer la connexion à une connexion WebSocket.

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

La réponse du serveur doit inclure l'en-tête Sec-WebSocket-Accept avec une valeur calculée à partir de l'en-tête Sec-WebSocket-Key dans la requête, et confirme l'intention de passer la connexion à une connexion WebSocket :

http
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

Spécifications

Spécification
The WebSocket Protocol
# section-11.3.3

Compatibilité des navigateurs

Voir aussi