Sec-WebSocket-Protocol

Der Sec-WebSocket-Protocol HTTP-Anforderungs- und Antwortheader wird im WebSocket-Eröffnungs-Handshake verwendet, um ein in der Kommunikation zu verwendendes Subprotokoll auszuhandeln. Dies kann ein gut verstandenes Protokoll wie SOAP oder WAMP oder ein benutzerdefiniertes Protokoll sein, das vom Client und Server verstanden wird.

In einer Anfrage gibt der Header ein oder mehrere WebSocket-Subprotokolle an, die die Webanwendung verwenden möchte, in der Reihenfolge der Präferenz. Diese können als Protokollwerte in mehreren Headers hinzugefügt oder als durch Kommas getrennte Werte zu einem einzigen Header hinzugefügt werden.

In einer Antwort wird das vom Server ausgewählte Subprotokoll angegeben. Dies muss das erste Subprotokoll sein, das der Server von der im Anforderungsheader bereitgestellten Liste unterstützt.

Der Anforderungsheader wird automatisch vom Browser hinzugefügt und mit Werten befüllt, die von der Anwendung im protocols-Argument des WebSocket() angegeben wurden. Das vom Server ausgewählte Subprotokoll wird der Webanwendung in WebSocket.protocol zur Verfügung gestellt.

Header-Typ Anforderungsheader, Antwortheader
Verbotener Header-Name ja

Syntax

Anforderung:

http
Sec-WebSocket-Protocol: <sub-protocols>

Antwort:

http
Sec-WebSocket-Protocol: <selected-sub-protocol>

Anweisungen

<sub-protocols>

Eine durch Kommas getrennte Liste von Subprotokollnamen, in der Reihenfolge der Präferenz. Die Subprotokolle können aus dem IANA WebSocket Subprotocol Name Registry ausgewählt werden oder ein benutzerdefinierter Name sein, der gemeinsam von Client und Server verstanden wird.

Beispiele

Das Subprotokoll wird in der ursprünglichen WebSocket-Handshake-Anfrage angegeben. Die untenstehende Anforderung zeigt, dass der Client soap bevorzugt, aber auch wamp unterstützt.

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

Die Protokolle so anzugeben, hat den gleichen Effekt:

http
Sec-WebSocket-Protocol: soap
Sec-WebSocket-Protocol: wamp

Die Antwort des Servers wird den Sec-WebSocket-Protocol-Header enthalten, der das erste Subprotokoll auswählt, das er aus den Präferenzen des Clients unterstützt. Unten wird soap gezeigt:

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

Spezifikationen

Specification
Unknown specification
# section-11.3.4

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch