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
Sec-WebSocket-Accept: <hashed key>
Directives
<hashed key>-
Si un en-tête
Sec-WebSocket-Keya é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ères258EAFA5-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.
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/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
- L'en-tête
Sec-WebSocket-Key - L'en-tête
Sec-WebSocket-Version - 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
- Mécanisme de mise à niveau du protocole HTTP