Что означает Vary: * для общего кэша прокси
Поймите, почему сохранённый ответ с Vary: * не может совпасть с последующим запросом при обычном выборе в общем кэше.
Сохранённый ответ с Vary: * всегда не проходит обычную проверку совпадения Vary. Прокси не может заключить, что последующий запрос имеет право на то же представление, только потому, что его URL и видимые заголовки выглядят похоже.
Сравните это с:
Vary: Accept-Encoding
Здесь указано поле запроса, которое кэш может сравнить. Подстановочный знак говорит, что такого сравнения заголовков недостаточно. Увеличение свежести или размера кэша не даёт недостающей информации для выбора.
Разница между хранением и повторным использованием. Кэш может хранить информацию, полезную для проверки, но сохранённый вариант с подстановочным знаком не становится обычным подходящим ответом, способным удовлетворить следующий запрос. Обычно прокси должен обращаться к источнику.
Пусть политика ответа описывает приложение
Если вы управляете источником и представление действительно меняется только по определяемым заголовкам запроса, назовите эти поля точно. Не заменяйте подстановочный знак на Accept-Encoding только потому, что этот пример можно кэшировать: приложение может меняться также по языку, авторизации или информации вне этих заголовков.
Если содержимое приватное или не должно храниться, выразите это соответствующей политикой кэша. Удаление Vary не делает персонализированное содержимое безопасным для общего доступа.
Параметр Squid vary_ignore_expire касается обработки истечения срока для изменяющихся ответов и исторического поведения HTTP. Это не переключатель, который заставляет подстановочный знак совпадать.