Перейти к содержимому
Skip to content
← Все статьи

Инвалидация кеша CDN: стратегии доставки свежего контента

CDN драматически улучшают производительность, кешируя контент на edge-серверах по всему миру. Но кеширование создаёт фундаментальную проблему: как обеспечить, чтобы пользователи видели обновлённый контент? Инвалидация кеша — процесс удаления или замены устаревшего кешированного контента — одна из сложнейших задач.

Почему инвалидация сложна

Стратегии инвалидации

1. Purge (очистка кеша)

Явно указать CDN удалить конкретные URL из кеша:

# Cloudflare API purge
curl -X POST "https://api.cloudflare.com/client/v4/zones/{zone_id}/purge_cache" \
  -H "Authorization: Bearer {token}" \
  -d '{"files":["https://example.com/styles.css"]}'

2. Cache-Busting (версионированные URL)

Добавление хеша или таймстампа к URL файлов:

<link rel="stylesheet" href="/css/main.css?v=a1b2c3d4">
<link rel="stylesheet" href="/css/main.a1b2c3d4.css">

Плюс: purge не нужен — новый URL = новая запись в кеше. Мгновенно для пользователей.

3. TTL-истечение

# Короткий TTL для HTML
Cache-Control: public, max-age=300

# Длинный TTL для версионированных ассетов
Cache-Control: public, max-age=31536000, immutable

# Без кеша для динамических API
Cache-Control: no-cache, no-store

4. Stale-While-Revalidate

Отдаёт устаревший контент, пока фоново получает свежий:

Cache-Control: public, max-age=300, stale-while-revalidate=86400

После 5 минут контент «устаревший», но отдаётся до 24 часов, пока CDN фетчит свежую копию.

5. Cache Tags (Surrogate Keys)

Теги для кешированных ответов с логическими идентификаторами:

# Заголовок ответа
Surrogate-Key: product-123 category-electronics homepage

# Очистка по тегу
curl -X POST "https://cdn.example.com/purge/product-123"

Стратегия по типу контента

КонтентСтратегияTTL
HTML-страницыКороткий TTL + purge при публикации5-60 мин
CSS/JS (версионированные)Cache-busting + immutable1 год
ИзображенияCache-busting1 год
API документацию-ответыКороткий TTL или no-cache0-60 сек
ПользовательскиеБез кеша CDN (private)0
ШрифтыДлинный TTL + CORS1 год

Лучшие практики

Заключение

Лучшая стратегия инвалидации — избежать инвалидации. Используйте версионированные URL для статики. Для динамического контента — короткие TTL + stale-while-revalidate. Явный purge оставьте для срочных обновлений.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: Производительность
Производительность
Метрики производительности API
14.03.2026 · 12 просм.
Производительность
Оптимизация доставки контента: стратегии CDN и граничные вычисления
16.03.2026 · 12 просм.
Производительность
Оптимизация изображений для веба
14.03.2026 · 16 просм.
Производительность
Graceful Degradation и Progressive Enhancement: стратегии и практические примеры
16.03.2026 · 43 просм.