INTEGRITY Документация

Ключи кеша

Ключ кеша представляет собой идентификатор, который Cloudflare использует для файла в своём кеше, а шаблон ключа кеша (Cache Key Template) определяет этот идентификатор для конкретного HTTP запроса.

Ключ кеша по умолчанию включает:

  1. Полный URL:
    • схема, то есть HTTP или HTTPS.
    • узел - например, www.cloudflare.com
    • URI со строкой запроса, например, /logo.jpg?utm_source=newsletter
  2. Заголовок Origin, отправляемый клиентом (для поддержки CORS).
  3. x-http-method-override, x-http-method, а также x-method-override заголовки.
  4. x-forwarded-host, x-host, x-forwarded-scheme (кроме http или https), x-original-url, x-rewrite-url, а также forwarded заголовки.

Создание пользовательских ключей кеша

Custom cache keys позволяют точно задать параметр кешируемости для любого ресурса. Они дают больше контроля, но могут снижать долю попаданий в кеш и приводить к шардингу кеша:

  1. На панели управления Cloudflare перейдите к разделу Cache Rules страницу.

    Перейдите в Cache Rules ↗
  2. Выберите Создать правило.

  3. В разделе Когда входящие запросы соответствуют, задайте выражение правила.

  4. В разделе Затем, в Допустимость кеширования разделе выберите Подлежит кешированию.

  5. Добавьте Cache Key настройку к правилу и выберите подходящий Query String параметр.

  6. Также можно выбрать настройки для Headers, Cookie, Host, а также Пользователь.

  7. Чтобы сохранить и развернуть правило, выберите Развернуть. Если вы ещё не готовы развернуть правило, выберите Save as Draft.

Шаблон Cache Key

Есть несколько распространённых причин изменить Cache Key Template. Вы можете изменить Cache Key Template, чтобы:

Влияние настроек SSL на поведение кеша

Cloudflare $scheme переменная играет ключевую роль в поведении кеша, но её значение различается в зависимости от типа ключа кеша:

Например, при использовании Flexible SSL Cloudflare всегда подключается к источнику по HTTP, независимо от того, использует ли посетитель HTTP или HTTPS. При настройках по умолчанию это приводит к одинаковому cache key для обоих протоколов.

Учитывайте, что изменение настройки SSL может приводить к сбросу кэша при использовании ключа кэша по умолчанию:

Как работает $scheme взаимодействует с вашей конфигурацией кэширования, важно понимать при изменении режимов SSL, чтобы избежать непредвиденного поведения кэша.

Cache Level: Ignore Query String

Cache Level Ignore Query String создает ключ кеша, включающий все элементы ключа кеша по умолчанию, за исключением строки запроса в URI, которая больше не включается. Например, запрос для http://example.com/file.jpg?something=123 и запрос для http://example.com/file.jpg?something=789 в этом случае будут иметь одинаковый ключ кэша.

Настройки Cache Key

Следующие поля управляют Cache Key Template.

Query String

Строка запроса определяет, какие параметры URL попадают в Cache Key. Вы можете include конкретные параметры строки запроса или exclude их с помощью соответствующих полей. Если вы указываете параметр строки запроса, value параметра строки запроса используется в ключе кеша.

Пример

Если включить строку запроса foo в URL-адрес вида https://www.example.com/?foo=bar, то bar появляется в Cache Key. Ровно одно из include или exclude ожидается.

Примечания по использованию

Headers

Заголовки определяют, какие заголовки входят в Cache Key. Как и с Query String, здесь можно включать определённые заголовки или исключать заголовки по умолчанию.

Если вы добавляете заголовок, его значение включается в Cache Key. Например, если HTTP-запрос содержит HTTP-заголовок вида X-Auth-API-key: 12345, и вы включаете X-Auth-API-Key header в Cache Key Template, то 12345 отображается в Cache Key.

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

Чтобы проверить наличие заголовка без учёта его фактического значения, используйте Проверка наличия опцию.

В настоящее время можно исключить только Origin заголовок. Origin заголовок всегда включается, если явно не исключён. Включение Заголовок Origin в ключе кэша важно для обеспечения CORS.

Кроме того, нельзя включать следующие заголовки:

Host

Host определяет, какой заголовок host включается в Cache Key.

Подобно query_string или header, cookie определяет, какие cookie попадают в Cache Key. Вы можете включить значение cookie или просто проверять наличие определённого cookie.

Примечания по использованию

Нельзя включать cookie, специфичные для Cloudflare. Имена cookie Cloudflare начинаются с префикса __cf, например, __cflb

Функции User

Поля функции User добавляют в Cache Key характеристики конечного пользователя (клиента).

Доступность

Доступность параметров ключа кеша зависит от вашего тарифного плана.

Free Pro Business Enterprise
Cache Deception Armor Да Да Да Да
Кеширование по типу устройства Да Да Да Да
Ignore query string Да Да Да Да
Сортировка строки запроса Да Да Да Да
Строка запроса Нет Нет Нет Да
Headers Нет Нет Нет Да
Cookie Нет Нет Нет Да
Host Нет Нет Нет Да
Функции User Нет Нет Нет Да

Устранение неполадок

Вы можете использовать Cloudflare Trace чтобы узнать, какие настройки Cache Key были применены к вашему запросу. Если вы отправляете запрос через инструмент Trace и он был обслужен из кеша, это отобразится как попадание в кеш в Параметры кеша раздел. Затем выберите Просмотр сведений о параметре чтобы точно увидеть, какие свойства Cache Key были использованы.

Ограничения

Предзагрузка функция несовместима с Custom Cache Keys. При Cache Rules, пользовательский cache key используется для кеширования всех ресурсов. Однако Prefetch всегда использует cache key по умолчанию. Из-за этого возникает несовпадение ключей.