Wat Vary: * betekent voor een gedeelde proxycache
Begrijp waarom een opgeslagen antwoord met Vary: * niet via normale selectie in een gedeelde cache bij een later verzoek kan passen.
Een opgeslagen antwoord met Vary: * faalt altijd in de normale Vary-matchtest. De proxy kan niet concluderen dat een later verzoek recht heeft op dezelfde representatie, alleen omdat de URL en zichtbare headers er hetzelfde uitzien.
Vergelijk dat met:
Vary: Accept-Encoding
Dit noemt een verzoekveld dat de cache kan vergelijken. De jokertekens geven aan dat dit soort headervergelijking niet voldoende is. Meer frisheid of een grotere cache levert de ontbrekende selectie-informatie niet.
Het verschil zit tussen opslag en hergebruik. Een cache kan informatie bewaren die nuttig is voor validatie, maar een opgeslagen jokervariant wordt geen normaal passend antwoord dat het volgende verzoek kan vervullen. De proxy moet doorgaans juist de oorsprong benaderen.
Laat het antwoordbeleid de toepassing beschrijven
Als u de oorsprong beheert en de representatie echt alleen varieert op basis van herkenbare verzoekheaders, noem die velden dan nauwkeurig. Vervang de jokertekens niet door Accept-Encoding alleen omdat dat voorbeeld cachebaar is: de toepassing kan ook variëren op taal, autorisatie of informatie buiten die headers.
Als de inhoud privé is of niet opgeslagen mag worden, druk dat uit via het bijbehorende cachebeleid. Vary verwijderen maakt gepersonaliseerde inhoud niet veilig om te delen.
De vary_ignore_expire van Squid gaat over het afhandelen van verloop voor variërende antwoorden en historisch HTTP-gedrag. Het is geen schakelaar die de jokertekens laat passen.