Caching modelМодель кеша

Batoff runs a two-tier cache: an edge tier on every PoP and a shared origin-shield tier in the closest region to your origin. Edge misses consult shield before ever hitting origin. У Batoff двухуровневый кеш: edge на каждом PoP и общий origin-shield в ближайшем к origin регионе. Промахи edge сначала идут в shield и только потом в origin.

Cache keysКлючи кеша

The default cache key is scheme + host + path + normalised_query. Query normalisation sorts keys alphabetically and drops tracking params (utm_*, fbclid, gclid, yclid, _ga). Ключ по умолчанию — scheme + host + path + normalised_query. Нормализация сортирует ключи и убирает трекеры (utm_*, fbclid, gclid, yclid, _ga).

You can extend the key with Vary response headers or explicit rules in the console. Common extensions: Accept-Encoding, Accept-Language, a signed cookie for A/B variants. Ключ можно расширить через заголовок Vary или правила в консоли. Частые добавления — Accept-Encoding, Accept-Language, подписанная A/B-кука.

TTL resolution orderПорядок определения TTL

  1. A matching console rule (path, tag, status code).Совпадающее правило в консоли (путь, тег, код).
  2. Cache-Control: s-maxage
  3. Cache-Control: max-age
  4. Expires (legacy, honored only in absence of the aboveустаревший, только при отсутствии предыдущих)
  5. Default: 0 (pass-through).По умолчанию — 0 (pass-through).

Responses with Set-Cookie, Authorization, or Cache-Control: private are never cached unless you explicitly override in the console. Ответы с Set-Cookie, Authorization или Cache-Control: private не кешируются, если явно не переопределено.

Stale while revalidateStale-while-revalidate

When an object's TTL expires, the edge serves it stale for up to stale-while-revalidate seconds while fetching fresh content in the background. This keeps tail latency low during origin slowdowns. После истечения TTL edge отдаёт stale-контент до stale-while-revalidate секунд, обновляя ответ в фоне. Это снижает хвостовые задержки при тормозах origin.

Response headersЗаголовки ответов

HeaderValuesЗначенияMeaningЗначение
x-batoff-cacheHIT, MISS, STALE, BYPASS, EXPIREDEdge cache decisionРешение edge-кеша
x-batoff-shieldHIT, MISSShield tier decisionРешение shield-кеша
x-batoff-popDME, LED, FRA, …Serving PoP IATA codeIATA-код PoP, отдавшего ответ
x-batoff-request-idulidTrace id for supportID запроса для поддержки
agesecondsсекундыTime in cacheВремя в кеше

Next:Дальше: Purge API →Purge API →