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:
Sec-WebSocket-Protocol: <sub-protocols>
Antwort:
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.
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:
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/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
Sec-WebSocket-Accept
Sec-WebSocket-Key
Sec-WebSocket-Version
Sec-WebSocket-Extensions
- Der WebSocket-Handshake und Subprotokolle im Writing WebSocket servers