Sec-WebSocket-Accept

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 Response-Header wird beim WebSocket Eröffnungshandshake verwendet, um anzuzeigen, dass der Server bereit ist, zu einer WebSocket-Verbindung aufzurüsten.

Dieser Header darf höchstens 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 wurde.

Header-Typ Response-Header
Verbotener Header-Name Ja (Sec- Präfix)

Syntax

http
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, die Zeichenkette 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 daran angehängt und der SHA-1 Hash dieser zusammengefügten Zeichenkette ermittelt wird — was einen 20-Byte Wert ergibt. Dieser Wert wird dann base64 kodiert, um den Wert dieser Eigenschaft zu erhalten.

Beispiele

WebSocket Eröffnungshandshake

Der Client wird ein WebSocket-Handshake mit einer Anfrage wie der folgenden initiieren. Beachten Sie, dass dies als HTTP GET-Anfrage (HTTP/1.1 oder höher) beginnt und den Upgrade Header enthält, der die Absicht signalisiert, zu einer WebSocket-Verbindung aufzurüsten. Er enthält auch Sec-WebSocket-Key, der in die Berechnung von Sec-WebSocket-Accept einfließt, um die Absicht, die Verbindung zu einer WebSocket-Verbindung aufzurüsten, zu bestätigen.

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

Die Antwort des Servers sollte den Sec-WebSocket-Accept Header mit einem Wert enthalten, der aus dem Sec-WebSocket-Key Header in der Anfrage berechnet wurde und die Absicht, die Verbindung zu einer WebSocket-Verbindung aufzurüsten, bestätigt:

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

Spezifikationen

Specification
The WebSocket Protocol
# section-11.3.3

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Sec-WebSocket-Accept

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch