Expect
Der HTTP Expect
Request-Header gibt an, dass es Erwartungen gibt, die vom Server erfüllt werden müssen, um die vollständige 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 Anfrageinhalts zu empfangen. Auf eine 100
Antwort zu warten, kann hilfreich sein, wenn ein Client erwartet, dass wahrscheinlich ein Fehler auftritt, zum Beispiel wenn Status-verändernde Operationen ohne vorher verifizierte Authentifizierungs-Credentials gesendet werden.
Eine 417 Expectation Failed
Antwort wird zurückgegeben, falls der Server die Erwartung nicht erfüllen kann oder jede andere Statusantwort, wie z.B. ein 4XX Status für einen Client-Fehler oder ein 2XX Status, wenn die Anfrage erfolgreich ohne weitere Verarbeitung gelöst werden kann.
Keiner der gebräuchlicheren 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 Empfänger darüber, dass der Client im Begriff ist, einen (vermutlich großen) Nachrichtenkörper in dieser Anfrage zu senden und eine
100 Continue
Zwischenantwort wünscht.
Beispiele
Großer Nachrichtenkörper
Ein Client sendet eine Anfrage mit Expect
Header und wartet, bis 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 überprüft die Header und erzeugt die Antwort, wobei eine 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 |