Expect header
Der HTTP Expect
Request-Header zeigt an, dass bestimmte Erwartungen vom Server erfüllt werden müssen, um die gesamte Anfrage erfolgreich zu bearbeiten.
Wenn eine Anfrage einen Expect: 100-continue
Header enthält, sendet ein Server eine 100 Continue
-Antwort, um anzuzeigen, dass der Server bereit oder in der Lage ist, den Rest des Anfrageninhalts zu empfangen. Auf eine 100
-Antwort zu warten, kann hilfreich sein, wenn ein Client voraussieht, dass ein Fehler wahrscheinlich ist, zum Beispiel beim Senden von zustandsändernden Operationen ohne vorher verifizierte Authentifizierungsdaten.
Eine 417 Expectation Failed
-Antwort wird zurückgegeben, wenn der Server die Erwartung nicht erfüllen kann, oder jeder andere Status ansonsten (z. B. ein 4XX-Status für einen Client-Fehler, oder ein 2XX-Status, wenn die Anfrage erfolgreich bearbeitet werden kann, ohne weitere Verarbeitung).
Keiner der gängigeren Browser sendet den Expect
-Header, aber einige Clients (Kommandozeilen-Tools) tun dies standardmäßig.
Header-Typ | Request-Header |
---|---|
Verbotener Request-Header | Ja |
Syntax
Expect: 100-continue
Direktiven
Es gibt nur eine definierte Erwartung:
100-continue
-
Informiert Empfänger, dass der Client im Begriff ist, einen (vermutlich großen) Nachrichteninhalt in dieser Anfrage zu senden und wünscht eine
100 Continue
Zwischenantwort zu erhalten.
Beispiele
Großer Nachrichteninhalt
Ein Client sendet eine Anfrage mit Expect
-Header und wartet darauf, dass der Server antwortet, bevor der Nachrichteninhalt gesendet wird.
PUT /somewhere/fun HTTP/1.1
Host: origin.example.com
Content-Type: video/h264
Content-Length: 1234567890987
Expect: 100-continue
Der Server überprüft die Header und generiert die Antwort, wobei eine 100 Continue
den Client anweist, den Nachrichteninhalt zu senden:
HTTP/1.1 100 Continue
Der Client vervollständigt die Anfrage, indem er die tatsächlichen Daten sendet:
[Video data as content for PUT request]
Spezifikationen
Specification |
---|
HTTP Semantics # field.expect |