РАДИО−НАВИГАЦИЯрадиосвязь и навигация для флота
мессенджер+7 (701) 466-02-23 телефон+7 (381) 249-00-02Лучше по e-mail

Vary HTTP: одинаковый URI не всегда означает одну кэшируемую копию

Фотография конкретного исполнения не приложена.

Запросить

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

RFC 9111 определяет сопоставление указанных полей с допустимой нормализацией их семантики. Отсутствующее поле совпадает с отсутствующим, а Vary со значением * всегда препятствует обычному совпадению сохранённого варианта. Поэтому собственный ключ cache нельзя строить произвольной конкатенацией лишь части известных заголовков.

В проекте перечисляют реальные причины выбора представления, например формат или content negotiation, и проверяют ответ по всем нужным путям. Если приложение изменило способ выбора, соответствующая политика кэширования должна остаться согласованной. Смена заголовков без проверки cache способна вернуть корректные байты не того варианта.

В приёмке два тестовых клиента запрашивают один URI с различающимися значимыми полями, затем повторяют обращения через cache. Сверяют вид представления и исходные validators. Успешный статус и совпадающее имя ресурса не подтверждают, что клиент получил именно предусмотренный для его запроса вариант.

Основание — Selected IETF HTTP RFCs, exact numbered editions and sections cited, разделы RFC9111 §4.1 Cache keys with Vary. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Реальные зоны, resolver и HTTP-клиенты не испытывались. Это проектные критерии; номера RFC обозначают документы, а не подтверждённую поддержку всех возможностей конкретным устройством.

Другие разборы связи и навигации