Sec-WebSocket-Accept header
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Der HTTP Sec-WebSocket-Accept Antwort-Header wird beim WebSocket Eröffnungs-Handshake verwendet, um anzuzeigen, dass der Server bereit ist, zu einer WebSocket-Verbindung zu wechseln.
Dieser Header darf nicht mehr als einmal in der Antwort erscheinen und hat einen Direktivenwert, der aus dem Sec-WebSocket-Key
-Anfrage-Header berechnet wird, der in der entsprechenden Anfrage gesendet wird.
Header-Typ | Antwort-Header |
---|---|
Verbotener Anfrage-Header | Ja (Sec- Präfix) |
Syntax
Sec-WebSocket-Accept: <hashed key>
Direktiven
<hashed key>
-
Wenn ein
Sec-WebSocket-Key
-Header angegeben wurde, wird der Wert dieses Headers berechnet, indem der Wert des Schlüssels genommen, der String258EAFA5-E914-47DA-95CA-C5AB0DC85B11
angehängt und der SHA-1 Hash dieses zusammengesetzten Strings genommen wird — das ergibt einen 20-Byte-Wert. Dieser Wert wird dann base64 kodiert, um den Wert dieser Eigenschaft zu erhalten.
Beispiele
WebSocket Eröffnungs-Handshake
Der Client wird einen WebSocket-Handshake mit einer Anfrage wie der folgenden initiieren.
Beachten Sie, dass dies als HTTP-GET
-Anfrage (HTTP/1.1 oder später) beginnt und den Upgrade
-Header enthält, der die Absicht anzeigt, zu einer WebSocket-Verbindung zu wechseln.
Es enthält auch Sec-WebSocket-Key
, das bei der Berechnung von Sec-WebSocket-Accept
verwendet wird, um die Absicht zu bestätigen, die Verbindung auf eine WebSocket-Verbindung umzustellen.
GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Die Antwort vom Server sollte den Sec-WebSocket-Accept
-Header enthalten, dessen Wert aus dem Sec-WebSocket-Key
-Header in der Anfrage berechnet wird und die Absicht bestätigt, die Verbindung auf eine WebSocket-Verbindung umzustellen:
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Spezifikationen
Specification |
---|
The WebSocket Protocol # section-11.3.3 |