only-if-cached fordert eine gespeicherte Antwort vom Proxy an
Frage einen kooperierenden HTTP-Cache nach einer vorhandenen Antwort und deute einen 504-Fehlschlag, ohne die Direktive als netzwerkweite Ausgangskontrolle zu verstehen.
Für eine Anfrage, die eine bereits gespeicherte Antwort nutzen soll, definiert HTTP Cache-Control: only-if-cached.
Ein Client kann sie über einen HTTP-Caching-Proxy senden:
curl --proxy http://127.0.0.1:3128 \
--header 'Cache-Control: only-if-cached' \
--include http://www.example.org/report
Ein Cache, der diese Direktive beachtet, sollte eine gespeicherte Antwort zurückgeben, die zu den übrigen Bedingungen der Anfrage passt, oder 504 Gateway Timeout, wenn er die Anfrage nicht erfüllen kann. Hier kann ein 504 die Cache-Richtlinie ausdrücken und nicht eine fehlgeschlagene TCP-Verbindung zum Proxy.
Die Direktive erlaubt nicht automatisch veraltete Inhalte. Frische, Validierungsanforderungen und passende Vary-Felder bleiben wichtig. Die Anfragedirektive no-cache kann stattdessen eine erfolgreiche Validierung beim Ursprung vor der Wiederverwendung verlangen.
Das unterscheidet sich auch vom Einrichten eines Offline-Validierungsmodus eines Caches. only-if-cached wird auf der einzelnen Anfrage übertragen und drückt aus, was der Client zu empfangen bereit ist.
Verwende einen Cache, der das Verhalten unterstützt. Eine ignorierte Anfragedirektive ist keine Firewall, daher erfordert die strikte Verhinderung von Upstream-Verkehr eine unabhängig durchgesetzte Netzwerk- oder Serverrichtlinie.
Ein gewöhnlicher HTTPS-CONNECT-Proxy sieht die verschlüsselten HTTP-Header nicht und behält keine Seitenobjekte aus diesem Tunnel. Das Beispiel nutzt bewusst eine einfache HTTP-Ressource, die der Cache verarbeiten kann.