Expect header
Der HTTP-Expect
-Request-Header zeigt an, dass bestimmte Erwartungen erfüllt werden müssen, damit der Server die vollständige Anfrage erfolgreich bearbeiten kann.
Wenn eine Anfrage einen Expect: 100-continue
-Header hat, sendet der Server eine 100 Continue
-Antwort, um anzuzeigen, dass der Server bereit ist, den Rest des Anfrageinhalts zu empfangen.
Das Warten auf eine 100
-Antwort kann hilfreich sein, wenn ein Client erwartet, dass ein Fehler wahrscheinlich ist, z. B. beim Senden von zustandsändernden Operationen ohne zuvor verifizierte Authentifizierungsdaten.
Eine 417 Expectation Failed
-Antwort wird zurückgegeben, wenn der Server die Erwartung nicht erfüllen kann, oder ein anderer Status (z. B. ein 4XX-Status für einen Clientfehler oder ein 2XX-Status, wenn die Anfrage erfolgreich ohne weitere Verarbeitung abgeschlossen werden kann).
Keine der gängigeren Browser sendet den Expect
-Header, aber einige Clients (Kommandozeilenwerkzeuge) 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 den Empfänger, dass der Client dabei ist, einen (vermutlich großen) Nachrichtenkörper in dieser Anfrage zu senden und wünscht, eine
100 Continue
-Zwischenantwort zu erhalten.
Beispiele
Großer Nachrichtenkörper
Ein Client sendet eine Anfrage mit Expect
-Header und wartet darauf, dass der Server antwortet, bevor er den Nachrichtenkörper sendet.
PUT /somewhere/fun HTTP/1.1
Host: origin.example.com
Content-Type: video/h264
Content-Length: 1234567890987
Expect: 100-continue
Der Server prüft die Header und generiert die Antwort, wobei ein 100 Continue
den Client anweist, den Nachrichtenkörper 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 |