only-if-cached vraagt de proxy om een opgeslagen antwoord
Vraag een samenwerkende HTTP-cache om een bestaand antwoord en lees een 504 als een cachemisser, niet als netwerkbrede uitgaande controle.
Voor een verzoek dat een al opgeslagen antwoord moet gebruiken, definieert HTTP Cache-Control: only-if-cached.
Een client kan het via een HTTP-cacheproxy sturen:
curl --proxy http://127.0.0.1:3128 \
--header 'Cache-Control: only-if-cached' \
--include http://www.example.org/report
Een cache die deze richtlijn respecteert, hoort een opgeslagen antwoord te retourneren dat past bij de overige beperkingen van het verzoek, of 504 Gateway Timeout wanneer het verzoek niet kan worden vervuld. Hier kan een 504 het cachebeleid uitdrukken en niet een mislukte TCP-verbinding met de proxy.
De richtlijn staat verouderde inhoud niet automatisch toe. Frisheid, validatie-eisen en overeenkomende Vary-velden blijven van belang. De verzoekrichtlijn no-cache kan juist een geslaagde validatie bij de oorsprong vereisen voordat hergebruik plaatsvindt.
Dit verschilt ook van het instellen van een offline-validatiemodus van een cache. only-if-cached wordt op het afzonderlijke verzoek gedragen en drukt uit wat de client bereid is te ontvangen.
Gebruik een cache die dit gedrag ondersteunt. Een genegeerde verzoekrichtlijn is geen firewall, dus streng verhinderen van opwaarts verkeer vereist een onafhankelijk afgedwongen netwerk- of serverbeleid.
Een gewone HTTPS CONNECT-proxy ziet de versleutelde HTTP-headers niet en bewaart geen paginaobjecten uit die tunnel. Het voorbeeld gebruikt bewust een eenvoudige HTTP-bron die de cache kan verwerken.