Cloudflare наконец-то научила кэш понимать HTTP Vary — что это меняет для вашего сайта

3 мин чтения 1
Cloudflare наконец-то научила кэш понимать HTTP Vary — что это меняет для вашего сайта

Cloudflare добавила полноценную поддержку HTTP-заголовка Vary в свой CDN — для всех типов контента, а не только картинок. Несколько лет это было тихой болью разработчиков: кэш мог отдать браузеру JSON вместо нормальной HTML-страницы. Теперь этот риск снят.

Суть события

Cloudflare развернула в своём CDN поддержку заголовка Vary, о которой разработчики просили давно. Сам по себе Vary — это часть HTTP, которая говорит кэшу: «не выдавай сохранённую копию всем подряд, учитывай, что именно запросил клиент». До этого обновления Cloudflare честно учитывал Vary только для картинок. Для HTML, JSON и остальных ответов кэш ориентировался только на URL и мог спокойно отдать JSON посетителю, который ждал HTML.

Для обычного пользователя это звучит как техническая мелочь. Но именно из-за неё на сайтах периодически возникают странные сбои: мобильное приложение вместо структурированных данных получает HTML, поисковик видит не ту версию страницы, а человек — невнятную кашу вместо нормального интерфейса. Сайты, которые зависят от такой схемы, годами строили обходные пути или просто отказывались от неё.

Детали

Vary в HTTP появился ещё в конце 90-х. Стандарт описывает, какие заголовки запроса должны влиять на то, какой именно ответ отдаётся из кэша. Самый частый случай — заголовок Accept: если клиент просит text/html, ему возвращают страницу; если application/json — структурированные данные. URL при этом одинаковый. Именно эта схема называется content negotiation — сервер выбирает формат ответа по запросу клиента.

До обновления Cloudflare такой шаблон за CDN был рискованным: кэш мог сохранить JSON-ответ и потом выдать его посетителю сайта, потому что его запрос отличался только заголовком Accept, а не адресом. Simon Willison в блоге прямо назвал Vary «самой уродливой частью HTTP» и написал, что ждал этой возможности несколько лет. Сам он предпочитает добавлять к адресу суффикс .json для второго формата, но признаёт, что для многих команд Accept-разделение было бы удобнее.

Контекст

Cloudflare остаётся одним из крупнейших CDN-сервисов (сетей доставки контента, которые хранят копии сайтов ближе к пользователю) по числу обслуживаемых сайтов. Для небольших команд новая поддержка Vary снимает реальный страх. Раньше разработчик, который хотел использовать content negotiation, должен был либо отказаться от кэширования и платить за трафик, либо строить собственный слой перед Cloudflare, либо придумывать хитрые адреса — а это мешает аналитике и SEO.

Для экосистемы в целом это сигнал, что CDN-рынок движется к более «честному» HTTP, где протокол работает так, как описано в стандарте. Конкуренты Cloudflare теперь в позиции догоняющих. Это уже не просто ещё одна фича в чейнджлоге — это пересборка ожиданий о том, что именно CDN должен делать с Vary «по умолчанию». Тем временем в сфере ИИ-регулирования Урсула фон дер Ляйен назвала выход AI-агентов за пределы привычной среды лишь предупреждением.

Что дальше

Пользователям следить за обновлением стоит, только если они ведут собственный сайт или взаимодействуют с API. Простой следующий шаг: проверить, не отдаёт ли ваш сервис одинаковый JSON тем клиентам, которые ждут HTML. Если такое случается, после включения Vary в Cloudflare проблема должна исчезнуть сама.

Если странности остаются — причина не в CDN, а в настройках самого сайта. Тогда полезно проверить заголовки Vary, Accept-Encoding и маршрутизацию на origin-сервере. Стоит также прогнать один реальный запрос через сервис типа curl с разными Accept и посмотреть, действительно ли CDN отдаёт разные ответы после обновления. Это быстрее любого чтения документации.

Материал был полезен?
AI-инструменты без границ

Получите доступ к нужному AI-сервису уже сегодня

ChatGPT, Claude, Gemini, MiniMax и агенты для кода — предложения проверенных продавцов по доступным ценам. Оплата российскими картами, через СБП или криптовалютой.

Проверенные продавцы Быстрая выдача Доступные цены
Прокрутить вверх