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

Кеш

Контекст

Cache API дает точный контроль над чтением и записью из глобальная сеть Cloudflare кеш.

Cache API доступен по всему миру, но содержимое кеша не реплицируется за пределы исходного дата-центра. Ключ кеша, GET /users ответ можно кешировать в исходном дата-центре, но в другом дата-центре он появится, только если был создан там явно.

Workers, развёрнутые на пользовательских доменах, имеют доступ к функциональным cache операции. Так же ведут себя и Функции Pages, независимо от того, подключены ли они к пользовательским доменам или *.pages.dev доменов.

Однако любые операции Cache API в редакторе панели управления Cloudflare Workers и Playground превью не будут иметь эффекта. Для Workers, работающих за Cloudflare Access, Cache API пока недоступен.


Доступ к Cache

caches.default API во многом основан на Cache API веб-браузеров, но есть важные отличия. Например, среда выполнения Cloudflare Workers предоставляет единый глобальный объект кеша.

let cache = caches.default;
await cache.match(request);

Вы можете создавать дополнительные экземпляры Cache и управлять ими через caches.open метод.

let myCache = await caches.open('custom:cache');
await myCache.match(request);

Headers

Наша реализация Cache API учитывает следующие заголовки HTTP в ответе, переданном в put():

Это отличается от Cache API веб-браузера тем, что заголовки запроса и ответа не учитываются.


Методы

Put

cache.put(request, response);

Параметры

Недопустимые параметры

cache.put выбросит ошибку, если:

Ошибки

cache.put возвращает 413 ошибку, если Cache-Control указывает не кешировать, или если ответ слишком большой.

Match

cache.match(request, options);

Параметры

В отличие от браузерного Cache API, Cloudflare Workers не поддерживают ignoreSearch или ignoreVary параметры для match(). Этого можно добиться, удалив строки запроса или HTTP-заголовки на put() раз.

Наша реализация Cache API учитывает следующие заголовки HTTP в запросе, переданном в match():

Ошибки

cache.match генерирует 504 ответ с ошибкой, если запрошенное содержимое отсутствует или устарело. Cache API не предоставляет доступ к этому 504 напрямую в скрипт Worker, а вместо этого возвращает undefined. Тем не менее базовый 504 по-прежнему виден в Cloudflare Logs.

Если вы используете Cloudflare Logs, вы можете увидеть следующие 504 ответов с этим RequestSource edgeWorkerCacheAPI. Это ожидаемо, если закешированный ресурс отсутствовал или устарел. Обратите внимание, что edgeWorkerCacheAPI запросы уже отфильтрованы в других представлениях, например в Cache Analytics. Чтобы отфильтровать эти запросы или оставить только запросы от конечных пользователей вашего сайта, см. Фильтрация конечных пользователей.

Delete

cache.delete(request, options);

Удаляет Response объект из кеша и возвращает Promise для булевого ответа:

Параметры