Sec-WebSocket-Extensions
Der Sec-WebSocket-Extensions HTTP-Anforderungs und Antwort-Header wird im WebSocket-Eröffnungs-Handshake verwendet, um eine Protokollerweiterung zwischen Client und Server auszuhandeln.
In einer Anforderung gibt der Header eine oder mehrere Erweiterungen an, die die Webanwendung verwenden möchte, in der Reihenfolge der Präferenzen. Diese können als mehrere Header hinzugefügt werden, oder als kommagetrennte Werte in einem einzelnen Header.
In einer Antwort kann der Header nur einmal erscheinen, wo er die vom Server aus den Präferenzen des Clients ausgewählte Erweiterung angibt. Dieser Wert muss die erste Erweiterung sein, die der Server aus der im Anforderungs-Header bereitgestellten Liste unterstützt.
Der Anforderungs-Header wird automatisch vom Browser basierend auf seinen eigenen Fähigkeiten hinzugefügt und hängt nicht von Parametern ab, die an den Konstruktor übergeben werden, wenn der WebSocket
erstellt wird.
Headertyp | Anforderungs-Header, Antwort-Header |
---|---|
Verbotener Header-Name | ja |
Syntax
Anforderung
Sec-WebSocket-Extensions: <extensions>
Antwort
Sec-WebSocket-Extensions: <selected-extension>
Direktiven
<extensions>
-
Eine kommagetrennte Liste von Erweiterungen, die angefordert werden sollen (oder zu denen der Server zustimmen muss, diese zu unterstützen). Diese sollten aus dem IANA-WebSocket-Erweiterungsnamen-Register ausgewählt werden. Erweiterungen, die Parameter verwenden, trennen diese mit Semikolons.
Beispiele
Die folgende HTTP-Anforderung zeigt den Eröffnungshandshake, bei dem ein Client die permessage-deflate
und client_max_window_bits
-Erweiterungen 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 Anforderung 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 permessage-deflate
-Erweiterung 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 |
---|
Unknown specification # 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-Handshake und Subprotokolle in Writing WebSocket servers