Zum Hauptinhalt springen

3. Storing Responses in Caches

Ein Cache DARF NICHT (MUST NOT) eine Antwort auf eine Anfrage speichern, es sei denn:

  • Die Anfragemethode wird vom Cache verstanden und ist als cachefähig definiert, und
  • der Antwortstatuscode wird vom Cache verstanden, und
  • die "no-store"-Cache-Direktive (siehe Abschnitt 5.2) erscheint nicht in den Anfrage- oder Antwort-Header-Feldern, und
  • die "private"-Antwortdirektive (siehe Abschnitt 5.2.2.6) erscheint nicht in der Antwort, wenn der Cache gemeinsam genutzt wird, und
  • das Authorization-Header-Feld (siehe Abschnitt 4.2 von [RFC7235]) erscheint nicht in der Anfrage, wenn der Cache gemeinsam genutzt wird, es sei denn, die Antwort erlaubt dies ausdrücklich (siehe Abschnitt 3.2), und
  • die Antwort erfüllt eine der folgenden Bedingungen:
    • enthält ein Expires-Header-Feld (siehe Abschnitt 5.3), oder
    • enthält eine max-age-Antwortdirektive (siehe Abschnitt 5.2.2.8), oder
    • enthält eine s-maxage-Antwortdirektive (siehe Abschnitt 5.2.2.9) und der Cache wird gemeinsam genutzt, oder
    • enthält eine Cache-Control-Erweiterung (siehe Abschnitt 5.2.3), die das Caching erlaubt, oder
    • hat einen Statuscode, der standardmäßig als cachefähig definiert ist (siehe Abschnitt 4.2.2), oder
    • enthält eine public-Antwortdirektive (siehe Abschnitt 5.2.2.5).

Beachten Sie, dass jede der oben aufgeführten Anforderungen durch eine Cache-Control-Erweiterung überschrieben werden kann; siehe Abschnitt 5.2.3.

In diesem Kontext hat ein Cache eine Anfragemethode oder einen Antwortstatuscode „verstanden", wenn er ihn erkennt und alle spezifizierten cachebezogenen Verhaltensweisen implementiert.

Beachten Sie, dass im normalen Betrieb einige Caches keine Antwort speichern werden, die weder einen Cache-Validator noch eine explizite Ablaufzeit hat, da solche Antworten normalerweise nicht nützlich zu speichern sind. Caches sind jedoch nicht daran gehindert, solche Antworten zu speichern.