RFC: 2068
Оригинал: Hypertext Transfer Protocol - HTTP/1.1
Другие версии: RFC 2616
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Алексей Симонов

14.43. Vary

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

Vary  = "Vary" ":" ( "*" | 1#field-name )

HTTP/1.1 сервер ДОЛЖЕН включить соответствующее поле заголовка Vary в любой cachable ответ, который подчинен управляемым сервером переговорам.

Выполнение так позволяет кэшу должным образом интерпретировать будущие запросы на том ресурсе и сообщает user agent о присутствии переговоров относительно того ресурса. Сервер ДОЛЖЕН включить соответствующее поле заголовка Vary в non-cachable ответ, который подчинен управляемым сервером переговорам, так как это могло бы предоставить user agent полезную информацию о размерностях, по которым мог бы измениться ответ.

Набор полей заголовка, названных значением поля Vary, известен как заголовки запроса "выбора".

Когда кэш получает последующий запрос, Request-URI которого определяет один или более входов кэша, включающих заголовок Vary, кэш не ДОЛЖЕН использовать такой элемент кэша, чтобы создать ответ на новый запрос, если все заголовки, названные в кэшируемом заголовке Vary, не присутствуют в новом запросе, и все сохраненные заголовки запроса выбора от предыдущего запроса соответствуют соответствующим заголовкам в новом запросе.

Заголовки запроса выбора от двух запросов определены, чтобы соответствовать, если и только если заголовки запроса выбора в первом запросе могут быть преобразованы к заголовкам запроса выбора во втором запросе, добавляя или удаляя линейный пробел (LWS) в местах, где этому позволяют соответствующая НОРМАЛЬНАЯ ФОРМА БЕКУСА-НАУРА, и/или объединение множественных messageheader полей с тем же самым именем поля, следующим правилам о заголовках сообщения в разделе 4.2.

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

Значение поля Vary, состоящее из списка сигналов имен полей, что представление, выбранное для ответа, основано на алгоритме выбора, который считает ТОЛЬКО перечисленные значения поля заголовка запроса в выборе самым соответствующим представлением. Кэш МОЖЕТ предположить, что тот же самый выбор будет сделан для будущих запросов с одинаковыми значениями для перечисленных имен полей, на протяжении времени, в которое ответ нов.

Данные имена полей не ограничены набором стандартных полей заголовка запроса, определенных этой спецификацией. Имена полей являются независящими от регистра.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.