advanced

CDN и cache-control

Проектируйте public, private и surrogate caching через TTLs, stale-while-revalidate, Vary, purge flows, shielding и safety personalized responses.

CDN кэширует ответы на edge PoP рядом с пользователями. Заголовки origin задают поведение: `Cache-Control`, `Surrogate-Control`, `CDN-Cache-Control`, `s-maxage`, `stale-while-revalidate`.

Публичный catalog JSON кэшируется глобально; персональные dashboards — `private, no-store` или edge logic с `Vary` по cookie/header.

					Cache-Control: public, max-age=0, s-maxage=300, stale-while-revalidate=60
Surrogate-Key: product-123
				

Surrogate keys (tag purge) инвалидируют связанные объекты без purge по URL. Shield/origin снижают нагрузку на primary origin.

На интервью: miss vs hit; query strings и ключи кэша; PCI/PII не на shared edge cache.

Типовые ошибки: кэш HTML с user data; без purge после правок админки; geo variance без мониторинга per-PoP.

Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.

Чеклист:

  • Классифицируйте routes: public edge, private browser, no-store.
  • Surrogate keys для массовой инвалидации.
  • Тест из нескольких регионов после deploy.
  • Hit ratio и offload origin.