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-Antwort-Header wird im WebSocket-Eröffnungshandshake verwendet, um anzugeben, dass der Server bereit ist, auf eine WebSocket-Verbindung zu wechseln.

Dieser Header darf höchstens einmal in der Antwort erscheinen und hat einen Direktivwert, der aus dem Sec-WebSocket-Key-Anforderungs-Header berechnet wird, der in der entsprechenden Anfrage gesendet wurde.

Header-Typ Antwort-Header
Verbotener Anforderungs-Header Ja (Sec--Präfix)

Syntax

http
Sec-WebSocket-Accept: <hashed key>

Direktiven

<hashed key>

Wenn ein Sec-WebSocket-Key-Header bereitgestellt wurde, wird der Wert dieses Headers berechnet, indem der Wert des Schlüssels genommen, die Zeichenkette 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 angehängt und der SHA-1-Hash dieser verketteten Zeichenkette genommen wird — was zu einem 20-Byte-Wert führt. Dieser Wert wird dann base64 codiert, 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-Anforderung (HTTP/1.1 oder später) beginnt und den Upgrade-Header enthält, der die Absicht signalisiert, auf eine WebSocket-Verbindung zu wechseln. Es enthält auch Sec-WebSocket-Key, der in der Berechnung von Sec-WebSocket-Accept verwendet wird, um die Absicht zu bestätigen, die Verbindung auf eine WebSocket-Verbindung umzustellen.

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 bestätigt, die Verbindung auf eine WebSocket-Verbindung umzustellen:

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

BCD tables only load in the browser

Siehe auch