For en anmodning, der skal bruge et allerede gemt svar, definerer HTTP Cache-Control: only-if-cached.

En klient kan sende det gennem en HTTP-cacheproxy:

curl --proxy http://127.0.0.1:3128 \
  --header 'Cache-Control: only-if-cached' \
  --include http://www.example.org/report

En cache, der respekterer dette direktiv, bør returnere et gemt svar, der stemmer overens med anmodningens øvrige begrænsninger, eller 504 Gateway Timeout, når den ikke kan opfylde anmodningen. Her kan et 504 udtrykke cachepolitik i stedet for en mislykket TCP-forbindelse til proxyen.

Direktivet tillader ikke automatisk forældet indhold. Friskhed, valideringskrav og matchende Vary-felter betyder stadig noget. Anmodningsdirektivet no-cache kan i stedet kræve vellykket validering hos oprindelsen før genbrug.

Det adskiller sig også fra at konfigurere en caches offlinevalideringstilstand. only-if-cached bæres på den enkelte anmodning og udtrykker, hvad klienten er villig til at modtage.

Brug en cache, der understøtter adfærden. Et ignoreret anmodningsdirektiv er ikke en firewall, så streng forhindring af opstrøms trafik kræver en uafhængigt håndhævet netværks- eller serverpolitik.

En almindelig HTTPS CONNECT-proxy ser ikke de krypterede HTTP-headere og beholder ikke sideobjekter fra den tunnel. Eksemplet bruger bevidst en almindelig HTTP-ressource, som cachen kan behandle.

Relaterede artikler