Управление временем кэширования через 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 сохраненные в кэше данные используются только после проверки, изменились ли они на сервере оригинации. Если данные на сервере оригинации изменились, они будут полностью загружены заново. Если нет – будут отданы из кэша.