Zum Hauptinhalt springen

4. Status Code Definitions (Statuscode-Definitionen)

4.1. 304 Not Modified (Nicht geändert)

Der Statuscode 304 (Not Modified) zeigt an, dass eine bedingte GET- oder HEAD-Anfrage empfangen wurde und zu einer 200 (OK) Antwort geführt hätte, wenn nicht die Tatsache wäre, dass die Bedingung als false bewertet wurde. Mit anderen Worten, der Server muss keine Darstellung der Zielressource übertragen, da die Anfrage anzeigt, dass der Client, der die Anfrage bedingt gestellt hat, bereits eine gültige Darstellung besitzt; der Server leitet daher den Client um, diese gespeicherte Darstellung zu verwenden, als wäre sie die Nutzlast einer 200 (OK) Antwort.

Der Server, der eine 304-Antwort generiert, MUSS eines der folgenden Header-Felder generieren, das in einer 200 (OK) Antwort auf dieselbe Anfrage gesendet worden wäre: Cache-Control, Content-Location, Date, ETag, Expires und Vary.

Da das Ziel einer 304-Antwort darin besteht, die Informationsübertragung zu minimieren, wenn der Empfänger bereits eine oder mehrere gecachte Darstellungen hat, SOLLTE ein Absender KEINE anderen Darstellungsmetadaten als die oben aufgeführten Felder generieren, es sei denn, diese Metadaten existieren zum Zweck der Anleitung von Cache-Aktualisierungen (z.B. könnte Last-Modified nützlich sein, wenn die Antwort kein ETag Feld hat).

Anforderungen an einen Cache, der eine 304-Antwort empfängt, sind in Abschnitt 4.3.4 von [RFC7234] definiert. Wenn die bedingte Anfrage von einem ausgehenden Client stammt, wie z.B. einem Benutzer-Agent mit eigenem Cache, der einen bedingten GET an einen gemeinsam genutzten Proxy sendet, dann SOLLTE der Proxy die 304-Antwort an diesen Client weiterleiten.

Eine 304-Antwort kann keinen Nachrichten-Body enthalten; sie wird immer durch die erste Leerzeile nach den Header-Feldern beendet.

4.2. 412 Precondition Failed (Vorbedingung fehlgeschlagen)

Der Statuscode 412 (Precondition Failed) zeigt an, dass eine oder mehrere Bedingungen, die in den Anfrage-Header-Feldern angegeben wurden, als false bewertet wurden, als sie auf dem Server getestet wurden. Dieser Antwortcode ermöglicht es dem Client, Vorbedingungen für den aktuellen Ressourcenzustand (seine aktuellen Darstellungen und Metadaten) zu setzen und somit zu verhindern, dass die Anfragemethode angewendet wird, wenn sich die Zielressource in einem unerwarteten Zustand befindet.