intermediate
CDN
Кэшируйте статику и динамику на edge: cache keys, headers, стратегия purge, origin shielding и stale behavior.
CDN Cloudflare кэширует ответы на edge PoP по cache key из URL, метода, заголовков и cookies. Для React или Next.js агрессивно кэшируют хешированные статические ассеты, а HTML и авторизованные API держат dynamic или с коротким TTL.
Cache-Control: public, max-age=31536000, immutable
# для /assets/app.a1b2c3.js
Cache-Control: private, no-store
# для /api/me или персонализированного HTML
| Параметр | Эффект | |----------|--------| | `Cache-Control` | Основной TTL браузера и edge | | `CF-Cache-Status` | HIT, MISS, EXPIRED, BYPASS | | Page Rules / Cache Rules | Поведение кэша по path | | Purge | Инвалидация по URL, tag или prefix |
После deploy используйте cache tags или prefix purge вместо полной очистки. Origin shield и stale-while-revalidate сглаживают пики нагрузки.
На интервью: состав cache key, заголовки `Vary`, стратегия purge после деплоя JS-бандла, разделение dynamic/static и диагностика MISS-штормов.
Типовые ошибки: кэш ответов с `Set-Cookie`; игнор query string в ключе; purge всего на каждый deploy; длинный TTL на HTML со stale API-данными.
Компромисс — разгрузка origin и latency (длинный кэш) против актуальности, персонализации и сложности инвалидации.
Чеклист:
- Fingerprint для static assets; длинный кэш.
- Auth и session paths — uncached или private.
- Автоматизируйте targeted purge при deploy.
- Смотрите `CF-Cache-Status` на staging.