Zapisana odpowiedź z Vary: * zawsze nie przechodzi normalnego testu dopasowania Vary. Proxy nie może uznać, że późniejsze żądanie ma prawo do tej samej reprezentacji tylko dlatego, że jego URL i widoczne nagłówki wyglądają podobnie.

Porównaj to z:

Vary: Accept-Encoding

To nazywa pole żądania, które cache może porównać. Znak wieloznaczny mówi, że takie porównanie nagłówków nie wystarcza. Zwiększenie świeżości lub rozmiaru cache'u nie dostarcza brakującej informacji wyboru.

Różnica jest między przechowywaniem a ponownym użyciem. Cache może zachować informacje przydatne do walidacji, ale zapisany wariant ze znakiem wieloznacznym nie staje się normalną pasującą odpowiedzią, która zaspokoi następne żądanie. Proxy zwykle musi skontaktować się ze źródłem.

Niech polityka odpowiedzi opisuje aplikację

Jeśli kontrolujesz źródło i reprezentacja naprawdę zmienia się tylko według rozpoznawalnych nagłówków żądania, nazwij te pola dokładnie. Nie zastępuj znaku wieloznacznego przez Accept-Encoding tylko dlatego, że ten przykład można zapisać w cache'u: aplikacja może też zmieniać się według języka, autoryzacji lub informacji spoza tych nagłówków.

Jeśli treść jest prywatna lub nie powinna być przechowywana, wyraź to odpowiednią polityką cache'u. Usunięcie Vary nie czyni spersonalizowanej treści bezpiecznej do udostępniania.

Ustawienie vary_ignore_expire w Squidzie dotyczy obsługi wygaśnięcia dla zmiennych odpowiedzi i historycznego zachowania HTTP. To nie jest przełącznik, który dopasowuje znak wieloznaczny.

Powiązane artykuły