Кеширование статического контента
Что за услуга, какую пользу несёт для вашего ресурса и как её подключить.
|
Подключается по запросу и доступно только для схемы интеграции Proxy. |
Что это
Кеширование — механизм, с помощью которого система защиты сохраняет копии ваших файлов и затем отдаёт их пользователям, не обращаясь к серверу-источнику.
Какие файлы можно кешировать
Любые. Обычно кешируют статический контент — файлы, которые редко меняются и одинаково отдаются всем пользователям. Например, иконки, CSS-стили, JavaScript-файлы, изображения или шрифты.
Какую пользу несёт
Кеширование снижает нагрузку на сервер-источник. Часть запросов наша защита обработает самостоятельно — ваш сервер получит меньше однотипных обращений и будет работать стабильнее при высоком трафике.
Кеширование ускоряет загрузку ресурса для пользователей. Если файл уже есть в кеше, защита отдаст его без обращения к серверу-источнику. Путь запроса становится короче, а ответ приходит быстрее.
Как работает
На своей стороне вы делаете настройку: для файлов, которые нужно кешировать, добавляете заголовок Cache-Control. В нём прописываете директивы — нужные параметры кеширования. Дальше всё работает так:
-
Пользователи отправляют запросы к вашему ресурсу.
-
Наша система фильтрует запросы и передаёт легитимные на ваш сервер-источник.
-
Сервер-источник отправляет ответы.
-
Наша система передаёт ответы пользователям.
Параллельно она проверяет, был ли у какого-нибудь из отданных файлов заголовок
Cache-Controlс нужными директивами. Если да, то кеширует этот файл. -
Пользователи отправляют новые запросы к вашему ресурсу.
-
Наша система блокирует нелегитимные запросы. А с легитимными поступает так:
-
если запрошен файл, который сохранён в кеше, отдаёт файл из кеша;
-
если запрошен файл не из кеша, передаёт этот запрос дальше на ваш сервер-источник.
-
|
Когда срок хранения файла истечёт, защита удалит его из кеша. Когда этот файл запросят снова, защита заберёт его с сервера-источника, сохранит новую копию в кеше и отдаст пользователю. |
Как подключить
-
Отправьте запрос на подключение кеширования персональному менеджеру или в техподдержку.
-
Поддержка на нашей стороне включит кеширование:
-
Подготовит для вашего ресурса кеш-зону — выделенное место размером 100 МБ на наших серверах.
-
Настроит кеширование: в кеш-зоне будут сохраняться ваши файлы, у которых есть заголовок
Cache-Controlс нужными директивами. -
Настроит добавление служебного заголовка
X-Verdict-Cache-Statusво все ответы, которые защита возвращает пользователям. Этот заголовок нужен, чтобы вы могли отслеживать работу кеширования.
-
-
Настройте на вашей стороне заголовок
Cache-Controlдля файлов, которые нужно кешировать. В нём укажите нужные директивы.
|
|
| Директива | Что означает | Что будет, если указать директиву | ||
|---|---|---|---|---|
|
Файл можно хранить и в общем кеше, и в приватном кеше. |
Наша защита сохранит копию файла в кеше и будет отдавать её пользователям. Получив файл, браузер пользователя также сохранит его в свой локальный кеш. |
||
|
Файл можно хранить только в приватном кеше. |
Наша защита не сохранит файл в кеш и будет каждый раз обращаться за ним на сервер-источник. Получив файл, браузер пользователя сохранит его в свой локальный кеш. |
||
|
Перед использованием кешированной копии нужно проверить у сервера-источника, не изменился ли файл. |
Наша защита не сохранит файл в кеш и будет каждый раз обращаться за ним на сервер-источник. Получив файл, браузер пользователя сохранит его в свой локальный кеш. Но каждый раз перед тем, как воспользоваться локальной копией, будет проверять её на актуальность.
|
||
|
Полный запрет на сохранение файла в каких-либо кешах. |
Ни наша защита, ни браузер пользователя не будут сохранять файл в кеше. |
||
|
Срок хранения файла в каком-либо кеше. Например, |
Если копия файла была сохранена в каком-либо кеше (на стороне нашей защиты или браузера пользователя), она удалится оттуда через указанное время.
|
||
|
Срок хранения файла в общем кеше. Браузер пользователя эту директиву не учитывает. |
Если копия файла была сохранена в кеше нашей защиты, она удалится оттуда через указанное время.
|
Примеры настройки Cache-Control
Пример 1. Включить кеширование для файла
Пример заголовка: Cache-Control: public, max-age=3600.
Такой заголовок разрешает хранить файл в кеше 1 час.
Наша защита сохранит копию файла и в течение часа будет отдавать её пользователям без обращения к серверу-источнику. После этого удалит копию. Когда придёт новый запрос на этот файл, защита снова заберёт его с сервера-источника, сохранит копию в кеше и один час будет отдавать её пользователям.
Получив этот файл, браузер пользователя тоже сохранит его в своём кеше на час.
Пример 2. Задать отдельный срок хранения в общем кеше
Пример заголовка: Cache-Control: public, max-age=3600, s-maxage=86400.
И наша система, и браузер пользователя сохранят этот файл в своих кешах. Но срок хранения будет отличаться: для браузера задан 1 час, для системы защиты — 24 часа.
Пример 3. Отключить кеширование для файла
Пример заголовка: Cache-Control: no-store.
Такой заголовок запрещает сохранять файл в каких-либо кешах. Используйте его для файлов, которые не нужно кешировать.
Как проверить работу кеша
-
Откройте страницу ресурса в браузере.
-
Откройте
DevTools. -
Перейдите на вкладку
Networkи снимите галочкуDisable cache. -
Обновите страницу.
-
Откройте запрос к файлу и в заголовках ответа найдите
X-Verdict-Cache-Status. Возможные значения заголовка:-
HIT— файл отдан из кеша, кеширование сработало; -
MISS— файла не было в кеше, защита обратилась к серверу-источнику.
-
|
Если файл можно кешировать и Если при повторном запросе всё равно видите |