Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Sec-WebSocket-Protocol header
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Der HTTPSec-WebSocket-ProtocolRequest-Header undResponse-Header wird imWebSocket Eröffnungshandshake verwendet, um einSubprotokoll für die Kommunikation zu verhandeln. Dies kann ein allgemein bekanntes Protokoll wie SOAP oder WAMP sein, oder ein benutzerdefiniertes Protokoll, das vom Client und Server verstanden wird.
In einem Request gibt der Header eines oder mehrere WebSocket-Subprotokolle an, die die Webanwendung gerne verwenden möchte, in der Reihenfolge der Präferenz. Diese können als Protokollwerte in mehreren Headern hinzugefügt werden oder als durch Kommas getrennte Werte in einem einzigen Header.
In einer Response gibt er das vom Server ausgewählte Subprotokoll an. Dies muss das erste Subprotokoll sein, das der Server aus der im Request-Header bereitgestellten Liste unterstützt.
Der Request-Header wird automatisch vom Browser hinzugefügt und mit den vom Anwendungsprotokoll angegebenen Werten improtocols Argument fürWebSocket() gefüllt. Das vom Server ausgewählte Subprotokoll wird der Webanwendung inWebSocket.protocol zur Verfügung gestellt.
| Header-Typ | Request-Header,Response-Header |
|---|---|
| Verbotener Request-Header | Ja (Sec- Präfix) |
In diesem Artikel
Syntax
Sec-WebSocket-Protocol: <sub-protocols>Direktiven
<sub-protocols>Eine Liste von Subprotokollnamen, getrennt durch Kommas, in der Reihenfolge der Präferenz. Die Subprotokolle können aus demIANA WebSocket Subprotocol Name Registry ausgewählt werden oder ein benutzerdefinierter Name sein, der vom Client und Server gemeinsam verstanden wird.
Als Response-Header ist dies ein einzelnes Subprotokoll, das vom Server ausgewählt wurde.
Beispiele
>WebSocket-Eröffnungshandshake
Das Subprotokoll wird im ursprünglichen WebSocket-Handshake-Request angegeben. Der untenstehende Request zeigt, dass der Clientsoap bevorzugt, aber auchwamp unterstützt.
GET /chat HTTP/1.1Host: example.com:8000Upgrade: websocketConnection: UpgradeSec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==Sec-WebSocket-Version: 13Sec-WebSocket-Protocol: soap, wampDie Protokolle auf diese Weise anzugeben, hat denselben Effekt:
Sec-WebSocket-Protocol: soapSec-WebSocket-Protocol: wampDie Antwort des Servers wird denSec-WebSocket-Protocol-Header enthalten, der das erste Subprotokoll auswählt, das er aus den Präferenzen des Clients unterstützt. Unten wird dies alssoap dargestellt:
HTTP/1.1 101 Switching ProtocolsUpgrade: websocketConnection: UpgradeSec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=Sec-WebSocket-Protocol: soapSpezifikationen
| Specification |
|---|
| The WebSocket Protocol> # section-11.3.4> |
Browser-Kompatibilität
Siehe auch
Sec-WebSocket-AcceptSec-WebSocket-KeySec-WebSocket-VersionSec-WebSocket-Extensions- Das WebSocket-Handshake undSubprotokolle inWriting WebSocket servers