Управление временем кэшированием через HTTP-заголовки

В статье описывается возможность управления правилами кэширования через HTTP-заголовки.

Управление временем кэширования через HTTP-заголовки возможно только для Сервисных конфигураций с типом архитектуры Проксирование/кэширование содержимого веб-ресурса, при этом в NGENIX Multidesk в разделе Кэширование на странице Настройки кэширования (боковое меню выбранной Сервисной конфигурации) на вкладке Базовые настройки:

  • Должна быть включена опция Включить/выключить кэширование на платформе;

  • Должна быть выключена опция Игнорировать заголовки кэширования.

Для других типов архитектуры Сервисных конфигураций время кэширования определяется инженерами NGENIX в внутренних системах управления Платформой.

В соответствии со стандартом кэширования RFC 7234 для управления кэшированием используется HTTP-заголовок Cache-Conrol. Этот 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