Pyynnölle, jonka pitäisi käyttää jo tallennettua vastausta, HTTP määrittelee Cache-Control: only-if-cached.

Asiakas voi lähettää sen HTTP-välimuistivälityspalvelimen kautta:

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

Tätä direktiiviä noudattavan välimuistin pitäisi palauttaa tallennettu vastaus, joka on yhdenmukainen pyynnön muiden rajoitusten kanssa, tai 504 Gateway Timeout, kun se ei voi täyttää pyyntöä. Tässä 504 voi ilmaista välimuistikäytäntöä eikä epäonnistunutta TCP-yhteyttä välityspalvelimeen.

Direktiivi ei automaattisesti salli vanhentunutta sisältöä. Tuoreus, validoinnin vaatimukset ja vastaavat Vary-kentät ovat edelleen tärkeitä. Pyynnön direktiivi no-cache voi sen sijaan vaatia onnistunutta alkuperän validointia ennen uudelleenkäyttöä.

Tämä eroaa myös välimuistin offline-validointitilan asettamisesta. only-if-cached kulkee yksittäisessä pyynnössä ja ilmaisee, mitä asiakas on valmis vastaanottamaan.

Käytä välimuistia, joka tukee tätä käyttäytymistä. Huomiotta jätetty pyyntödirektiivi ei ole palomuuri, joten ylöspäin suuntautuvan liikenteen tiukka estäminen vaatii itsenäisesti toimeenpannun verkko- tai palvelinkäytännön.

Tavallinen HTTPS CONNECT -välityspalvelin ei näe salattuja HTTP-otsakkeita eikä säilytä sivun objekteja tuosta tunnelista. Esimerkki käyttää tarkoituksella yksinkertaista HTTP-resurssia, jonka välimuisti voi käsitellä.

Aiheeseen liittyvät artikkelit