Expect
Der HTTP-Expect
-Anforderungsheader zeigt 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. Das Warten auf eine 100
-Antwort kann hilfreich sein, wenn ein Client mit einem Fehler rechnet, zum Beispiel, wenn zustandsverändernde Operationen ohne vorher verifizierte Authentifizierungsanmeldeinformationen gesendet werden.
Eine 417 Expectation Failed
-Antwort wird zurückgegeben, wenn der Server die Erwartung nicht erfüllen kann, oder anderweitig ein anderer Status (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).
Keine der gängigeren Browser sendet den Expect
-Header, aber einige Clients (Kommandozeilenwerkzeuge) tun dies standardmäßig.
Header-Typ | Anforderungsheader |
---|---|
Verbotener Header-Name | Ja |
Syntax
Expect: 100-continue
Direktiven
Es gibt nur eine definierte Erwartung:
100-continue
-
Informiert die Empfänger, dass der Client im Begriff ist, einen (vermutlich großen) Nachrichteninhalt in dieser Anfrage zu senden und eine vorläufige
100 Continue
-Antwort erhalten möchte.
Beispiele
Großer Nachrichteninhalt
Ein Client sendet eine Anfrage mit Expect
-Header und wartet, bis der Server antwortet, bevor er den Nachrichteninhalt 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 ein 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 |