Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Upgrade header

Der HTTP-Upgrade-Request-Header und Response-Header kann verwendet werden, um eine bereits etablierte Client/Server-Verbindung auf ein anderes Protokoll (über dasselbe Transportprotokoll) aufzurüsten. Zum Beispiel kann ein Client eine Verbindung von HTTP/1.1 auf HTTP/2 oder eine HTTP(S)-Verbindung auf eine WebSocket-Verbindung aufrüsten.

Warnung: HTTP/2 verbietet ausdrücklich die Verwendung dieses Mechanismus und Headers; er ist spezifisch für HTTP/1.1.

Header-Typ Request-Header, Response-Header
Verbotener Request-Header Ja

Syntax

http
Upgrade: <protocol>[/<protocol_version>]
Upgrade: <protocol>[/<protocol_version>], …, <protocolN>[/<protocol_versionN>]

Anweisungen

<protocol>

Protokolle werden kommagetrennt in absteigender Prioritätsreihenfolge aufgelistet.

<protocol_version> Optional

Eine optionale Protokollversion kann angegeben werden, der ein / Schrägstrich vorangestellt ist.

Beschreibung

Das Upgrade-Header-Feld kann von Clients verwendet werden, um einen Server einzuladen, zu einem (oder mehreren) der aufgelisteten Protokolle in absteigender Präferenzreihenfolge zu wechseln. Zum Beispiel kann der Client eine GET-Anfrage senden, wie gezeigt, und die bevorzugten Protokolle auflisten, zu denen gewechselt werden soll (in diesem Fall example/1 und foo/2):

http
GET /index.html HTTP/1.1
Host: www.example.com
Connection: upgrade
Upgrade: example/1, foo/2

Hinweis: Der Connection-Header vom Typ upgrade muss immer mit dem Upgrade-Header gesendet werden.

Der Server kann die Anfrage aus beliebigem Grund ignorieren, in diesem Fall sollte er antworten, als ob der Upgrade-Header nicht gesendet worden wäre (zum Beispiel mit einem 200 OK). Wenn der Server die Verbindung aufrüsten möchte, muss er:

  1. Einen 101 Switching Protocols-Antwortstatus zurücksenden mit einem Upgrade-Header, der die Protokolle angibt, zu denen gewechselt wird. Zum Beispiel:

    http
    HTTP/1.1 101 Switching Protocols
    Upgrade: foo/2
    Connection: Upgrade
    
  2. Eine Antwort auf die ursprüngliche Anfrage unter Verwendung des neuen Protokolls senden (der Server darf nur zu einem Protokoll wechseln, mit dem er die ursprüngliche Anfrage abschließen kann).

Ein Server kann den Header auch als Teil einer 426 Upgrade Required-Antwort senden, um anzuzeigen, dass er die Anfrage nicht mit dem aktuellen Protokoll ausführen wird, dies aber möglicherweise tut, wenn das Protokoll geändert wird. Der Client kann dann einen Protokollwechsel unter Verwendung des oben beschriebenen Prozesses anfordern.

Mehr Details und Beispiele finden Sie im Thema Mechanismus zum Protokollwechsel.

Beispiele

Upgrade-Header mit mehreren Protokollen

Die folgende Anfrage listet mehrere Protokolle in absteigender Präferenz auf:

http
Connection: upgrade
Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

Aufrüstung zu WebSocket

Dies ist eine häufige Kombination von Headers, um mit der Aufrüstung einer HTTP-Verbindung zu WebSockets zu beginnen. Siehe Aufrüsten zu einer WebSocket-Verbindung für weitere Informationen.

http
Connection: Upgrade
Upgrade: websocket

Spezifikationen

Spezifikation
HTTP Semantics
# field.upgrade
HTTP Semantics
# status.426
HTTP/2
# informational-responses

Browser-Kompatibilität

Siehe auch