Expect
Der HTTP Expect
Anforderungsheader gibt an, dass es Erwartungen gibt, die vom Server erfüllt werden müssen, um die vollständige Anforderung erfolgreich zu bearbeiten.
Wenn eine Anforderung einen Expect: 100-continue
Header hat, sendet ein Server eine 100 Continue
Antwort, um anzuzeigen, dass der Server bereit oder in der Lage ist, den Rest des Anforderungsinhalts zu empfangen. Das Warten auf eine 100
Antwort kann hilfreich sein, wenn ein Kunde erwartet, dass ein Fehler wahrscheinlich ist, zum Beispiel beim Senden von zustandsändernden Operationen ohne zuvor überprüfte Authentifizierungsinformationen.
Eine 417 Expectation Failed
Antwort wird zurückgegeben, wenn der Server die Erwartung nicht erfüllen kann, oder ein anderer Status ansonsten (z.B. ein 4XX Status für einen Client-Fehler oder ein 2XX Status, wenn die Anforderung erfolgreich ohne weitere Bearbeitung gelöst werden kann).
Keiner der geläufigeren Browser sendet den Expect
Header, aber einige Clients (Kommandozeilen-Tools) tun dies standardmäßig.
Headertyp | Anforderungsheader |
---|---|
Verbotener Anforderungsheader | Ja |
Syntax
Expect: 100-continue
Direktiven
Es gibt nur eine definierte Erwartung:
100-continue
-
Informiert die Empfänger darüber, dass der Client dabei ist, einen (vermutlich großen) Nachrichtentext in dieser Anforderung zu senden und wünscht eine
100 Continue
Zwischenantwort zu erhalten.
Beispiele
Großer Nachrichtentext
Ein Client sendet eine Anfrage mit Expect
Header und wartet, bis der Server antwortet, bevor der Nachrichtentext 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, bei der ein 100 Continue
dem Client anweist, den Nachrichtentext 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 |