Was Vary: * für einen gemeinsam genutzten Proxy-Cache bedeutet
Verstehen Sie, warum eine gespeicherte Antwort mit Vary: * bei der normalen Auswahl im gemeinsamen Cache nicht zu einer späteren Anfrage passen kann.
Eine gespeicherte Antwort mit Vary: * besteht den normalen Vary-Abgleich nie. Der Proxy kann nicht folgern, dass eine spätere Anfrage dieselbe Repräsentation beanspruchen darf, nur weil ihre URL und die sichtbaren Header ähnlich aussehen.
Vergleichen Sie das mit:
Vary: Accept-Encoding
Dies benennt ein Anfragefeld, das der Cache vergleichen kann. Der Platzhalter sagt, dass diese Art von Header-Vergleich nicht ausreicht. Mehr Frische oder ein größerer Cache liefert die fehlende Auswahlinformation nicht.
Der Unterschied liegt zwischen Speicherung und Wiederverwendung. Ein Cache kann Informationen behalten, die für die Validierung nützlich sind, aber eine gespeicherte Platzhalter-Variante wird keine normale passende Antwort, die die nächste Anfrage erfüllen kann. Der Proxy muss sich stattdessen in der Regel an den Ursprung wenden.
Lassen Sie die Antwortrichtlinie die Anwendung beschreiben
Wenn Sie den Ursprung kontrollieren und die Repräsentation wirklich nur nach identifizierbaren Anfrage-Headern variiert, benennen Sie diese Felder genau. Ersetzen Sie den Platzhalter nicht durch Accept-Encoding, nur weil dieses Beispiel cachebar ist: Die Anwendung kann auch nach Sprache, Autorisierung oder Informationen außerhalb dieser Header variieren.
Wenn der Inhalt privat ist oder nicht gespeichert werden soll, drücken Sie das über die entsprechende Cache-Richtlinie aus. Das Entfernen von Vary macht personalisierte Inhalte nicht sicher teilbar.
Squids vary_ignore_expire betrifft die Ablaufbehandlung für variierende Antworten und historisches HTTP-Verhalten. Es ist kein Schalter, der den Platzhalter passend macht.