Управление кешем

Mutt

Professional
Messages
1,057
Reputation
7
Reaction score
580
Points
113
Содержание статьи
  • Что такое заголовок Кэш-контроль
  • Кэш-контроль: Максимальный возраст
  • Кэш-контроль: без кеша
  • Кэш-контроль: без магазина
  • Кэш-контроль: общедоступный
  • Кэш-контроль: частный
  • Дополнительные заголовки HTTP-кэша
  • CDN и Кэш-контроль

Что такое заголовок Кэш-контроль
Кэш-контроль - это HTTP-заголовок, используемый для указания политик кеширования браузера как в клиентских запросах, так и в ответах сервера. Политики включают в себя то, как кэшируется ресурс, где он кэшируется и его максимальный возраст до истечения срока действия (то есть время жизни).

Заголовок cache-control разбит на директивы, наиболее распространенные из которых подробно описаны ниже:

response-headers.jpg.webp

Пример заголовка HTTP-ответа от google.com

Кэш-контроль: Максимальный возраст
Директива запроса max-age определяет в секундах время, необходимое для истечения срока действия кэшированной копии ресурса. По истечении срока действия браузер должен обновить свою версию ресурса, отправив другой запрос на сервер.

Например, это cache-control: max-age=120 означает, что возвращенный ресурс действителен в течение 120 секунд, после чего браузер должен запросить более новую версию.

Кэш-контроль: без кеша
Директива no-cache означает, что браузер может кэшировать ответ, но сначала должен отправить запрос проверки на исходный сервер.

Кэш-контроль: без магазина
Директива no-store означает, что браузеры не могут кэшировать ответ и должны получать его с сервера каждый раз, когда он запрашивается. Этот параметр обычно используется для конфиденциальных данных, таких как личные банковские реквизиты.

Кэш-контроль: общедоступный
Директива публичного ответа указывает, что ресурс может кэшироваться любым кешем.

Кэш-контроль: частный
Директива частного ответа указывает, что ресурс зависит от пользователя - его можно кэшировать, но только на клиентском устройстве. Например, ответ веб-страницы, помеченный как частный, может быть кэширован браузером настольного компьютера, но не сетью доставки контента (CDN).

Дополнительные заголовки HTTP-кэша
Помимо управления кешем, известные заголовки HTTP-кеша включают:
  • Истекает - этот заголовок указывает фиксированную дату / время истечения срока действия кэшированного ресурса. Например, Expires: Sat, 13 May 2017 07:00:00 GMT сигнализирует о том, что срок действия кэшированного ресурса истекает 13 мая 2017 г. в 7:00 по Гринвичу. Заголовок expires игнорируется, если присутствует заголовок управления кешем, содержащий директиву max-age.
  • ETag - заголовок ответа, который определяет версию обслуживаемого контента в соответствии с токеном (например, строкой символов в кавычках), "675af34563dc-tr34" который изменяется после изменения ресурса. Если токен не изменился до того, как был сделан запрос, браузер продолжит использовать свою локальную версию.
  • Vary - заголовок, определяющий ответы, которые должны соответствовать кэшированному ресурсу, чтобы он считался действительным. Например, заголовок Vary: Accept-Language, User-Agent указывает, что кешированная версия должна существовать для каждой комбинации пользовательского агента и языка.

CDN и Кэш-контроль
Разнообразие заголовков кеширования может затруднить ручное управление кешем. Сети CDN позволяют детально управлять политиками кеширования с помощью удобной панели управления, избавляя вас от необходимости вручную настраивать отдельные заголовки.

Помимо упрощения управления кешем, сети CDN дополняют процесс кеширования браузера с помощью прокси. Прокси-кеширование приближает контент к посетителям сайта, ускоряя доставку локально хранимых ресурсов. Это особенно полезно для новых посетителей, браузеры которых еще не кэшировали содержимое сайта.

Наконец, более продвинутые сети CDN используют передовые методы автоматизации, включая машинное обучение, для кэширования динамически генерируемого контента и ресурсов. Это оптимизирует ваши политики кэширования и еще больше ускоряет доставку контента.
 
Top