Skip to content
6 / 13

Кэширование страниц и данных: s-maxage, stale-while-revalidate и кто их на самом деле понимает

Для страниц, которые генерируются на сервере, работает связка из трёх директив. s-maxage задаёт срок свежести для общего кэша (CDN), в отличие от max-age, который относится к браузеру: страницу можно держать в CDN минуту, а в браузере не кэшировать вовсе. stale-while-revalidate разрешает отдавать устаревший ответ ещё какое-то время, обновляя его фоном — пользователь получает мгновенный ответ, а нагрузка на источник остаётся низкой. stale-if-error позволяет отдать устаревшее вместо ошибки, когда источник недоступен. Главная практическая оговорка: не все CDN поддерживают stale-while-revalidate, и у части провайдеров нужны собственные настройки или директива без указанного времени работает не так, как ожидается. Поэтому поведение проверяют не по документации фреймворка, а по заголовкам ответа на реальном домене — Age, X-Cache, Cf-Cache-Status.

Кэширование страниц и данных: s-maxage, stale-while-revalidate и кто их на самом деле понимает | JScriptiser