Sec-WebSocket-Extensions
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-Extensions Anforderungs- und Antwortheader wird im WebSocket Eröffnungs-Handschlag verwendet, um eine Protokollerweiterung auszuhandeln, die vom Client und Server genutzt wird.
In einer Anfrage gibt der Header eine oder mehrere Erweiterungen an, die die Webanwendung verwenden möchte, in der Reihenfolge der Präferenz. Diese können als mehrere Header hinzugefügt werden oder als durch Kommas getrennte Werte zu einem einzelnen Header hinzugefügt werden.
In einer Antwort kann der Header nur einmal erscheinen, wobei er die Erweiterung spezifiziert, die der Server aus den Präferenzen des Clients ausgewählt hat. Dieser Wert muss die erste Erweiterung sein, die der Server aus der in der Anforderungs-Header bereitgestellten Liste unterstützt.
Der Anforderungs-Header wird vom Browser automatisch basierend auf dessen eigenen Fähigkeiten hinzugefügt und hängt nicht von den Parametern ab, die beim Erstellen des WebSocket
an den Konstruktor übergeben werden.
Header-Typ | Anforderungs-Header, Antwort-Header |
---|---|
Verbotener Anforderungs-Header | Ja (Sec- Präfix) |
Syntax
Anfrage
Sec-WebSocket-Extensions: <extensions>
Antwort
Sec-WebSocket-Extensions: <selected-extension>
Direktiven
<extensions>
-
Eine durch Kommas getrennte Liste von Erweiterungen, die angefragt werden sollen (oder denen der Server zustimmen soll, sie zu unterstützen). Diese sollten aus dem IANA WebSocket Extension Name Registry ausgewählt werden. Erweiterungen, die Parameter übernehmen, trennen diese mit Semikolons.
Beispiele
WebSocket Eröffnungs-Handschlag
Die untenstehende HTTP-Anfrage zeigt den Eröffnungs-Handschlag, bei dem ein Client die Erweiterungen permessage-deflate
und client_max_window_bits
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-Extensions: permessage-deflate; client_max_window_bits
Die folgende Anfrage mit separaten Headern für jede Erweiterung ist gleichwertig:
GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Extensions: client_max_window_bits
Die folgende Antwort könnte von einem Server gesendet werden, um anzuzeigen, dass er die Erweiterung permessage-deflate
unterstützen wird:
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Extensions: permessage-deflate
Spezifikationen
Specification |
---|
The WebSocket Protocol # section-11.3.2 |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
Sec-WebSocket-Accept
Sec-WebSocket-Key
Sec-WebSocket-Version
Sec-WebSocket-Protocol
- Der WebSocket-Handschlag und Unterprotokolle in Writing WebSocket servers