Кэширование
Заголовок Cache-Control собирается для каждой отдачи из политики бакета, папки и
срока жизни самого файла.
Видимость
visibility |
Имя | Cache-Control |
Кто кэширует |
|---|---|---|---|
1 |
SHARED |
public, max-age=…, immutable |
браузер и CDN |
2 |
PRIVATE |
private, max-age=… |
только браузер |
3 |
NO_STORE |
no-store |
никто |
Откуда берутся значения
- Папка
Если у папки задана своя политика (
PATCH /v1/folders/{name}/cache), берётся она. - Бакет
Иначе — политика бакета, она задаётся в панели.
- Окружение
Если
max-ageне задан нигде —CACHE_DEFAULT_MAX_AGE(86400) дляSHAREDиCACHE_PRIVATE_MAX_AGE(0) дляPRIVATE.
Правила поверх
- Непубличный файл и каналы
/p,/t— всегда не вышеPRIVATE: такой ответ не должен попасть в общий кэш CDN. max-ageне дольше жизни. Если у файла есть срок хранения или отдача идёт по временной ссылке,max-ageобрезается до оставшегося времени.max-age=0превращается вmax-age=0, must-revalidate— кэш обязан переспрашивать, аETagделает такой запрос дешёвым (304).
immutable
Содержимое файла по адресу не меняется — новая версия получает новый id. Поэтому для
SHARED безопасно ставить большой max-age: immutable избавляет и от повторных проверок.