Управление временем кэшированием через HTTP-заголовки
В статье описывается возможность управления правилами кэширования через HTTP-заголовки.
Управление временем кэширования через HTTP-заголовки возможно только для Сервисных конфигураций с типом архитектуры Проксирование/кэширование содержимого веб-ресурса, при этом в NGENIX Multidesk в разделе Кэширование на странице Настройки кэширования (боковое меню выбранной Сервисной конфигурации) на вкладке Базовые настройки:
Должна быть включена опция Включить/выключить кэширование на платформе;
Должна быть выключена опция Игнорировать заголовки кэширования.
Для других типов архитектуры Сервисных конфигураций время кэширования определяется инженерами NGENIX в внутренних системах управления Платформой.
В соответствии со стандартом кэширования RFC 7234 для управления кэшированием используется HTTP-заголовок Cache-Control
. Этот HTTP-заголовок определяет на какое время можно кэшировать данные. Заголовок Cache-Control
указан в спецификации HTTP/1.1 и имеет приоритет над другими HTTP-заголовками, которые использовались раньше для задания правил кэширования (например, Expires
). Заголовок Cache-Control
поддерживают все современные браузеры.
Заголовок Cache-Control
состоит из набора директив, определяющих правила кэширования данных. Самые распространенные директивы:
max-age. Указывает период актуальности кэша в секундах. Отсчет времени начинается с момента запроса. Например,
max-age=86400
означает, что данные в кэше будут актуальны 24 часа.public. Если в ответе содержится директива
public
, его можно кэшировать, даже если с запрашиваемыми данными связана HTTP-аутентификация и код статуса ответа отличается от 2xx. Например, можно кэшировать данные с кодом статуса ответа 404. Эта директива требуется редко, поскольку для данных с кодом статуса ответа 2хх достаточно директивыmax-age
.private. Используется для приватных данных, которые можно сохранить в кэше браузера, но нельзя сохранять в промежуточных кэшах, таких как серверы доставки, прокси-серверы.
no-store. Запрещает браузеру и всем промежуточным кэшам сохранять данные. Эта директива используется, например, если данные содержат личную или банковскую информацию. Каждый раз, когда пользователь хочет получить эти данные, они загружаются заново с сервера оригинации.
no-cache. Означает, что при повторном запросе к тому же URL сохраненные в кэше данные используются только после проверки, изменились ли они на сервере оригинации. Если данные на сервере оригинации изменились, они будут полностью загружены заново. Если нет – будут отданы из кэша.
Если HTTP-заголовки Cache-Control
и Expires
не заданы, а код статуса ответа 200, серверы доставки сохранят в кэше запрошенный файл на один час.
Last updated