Что означает HTTP-заголовок Vary:*

Насколько я знаю, HTTP-заголовок Vary определяет разделенный запятыми список HTTP-заголовков, которые должны учитываться кэшами вместе с URL при решении вопроса о том, является ли запрос попаданием в кэш или пропуском.

Если этот заголовок опущен, это означает, что будет рассматриваться только URL.

Но что произойдет, если заголовок будет Vary:*?

RFC 2616 14.4

Значение поля Vary, равное ***, сигнализирует, что неопределенные параметры, не ограниченные заголовками запроса (например, сетевой адрес клиента), играют роль в выборе представления ответа. Значение * НЕ ДОЛЖНО генерироваться прокси-сервером; оно может быть только генерироваться только сервером происхождения.

RFC 2616 13.6

Значение поля заголовка Vary, равное *, всегда не соответствует и последующие запросы к этому ресурсу могут быть правильно интерпретированы только сервером происхождения. оригинальный сервер.

Значит ли это, что все запросы с таким заголовком будут пропуском кэша?

Я выяснил, что ASP.NET возвращает этот HTTP-заголовок, если вы используете их OutputCacheAttribute, и вы должны явно отключить это поведение, если вам не нужен этот заголовок, или вы хотите указать пользовательские заголовки, поэтому я (хочу) верить, что это маловероятно.

Каков практический смысл Vary:* ?

Спасибо.

8
задан vtortola 29 September 2011 в 15:48
поделиться