advanced
Кэширование
Используйте HTTP cache headers, политику CDN, service workers и client cache без некорректной отдачи устаревших или персональных данных.
Frontend caching — HTTP cache headers, CDN edge, service workers и in-memory client cache. Правильный cache ускоряет повторные визиты, но может отдать устаревший или персональный контент.
| Слой | Типичная политика | |------|-------------------| | Hashed static assets | `Cache-Control: public, max-age=31536000, immutable` | | HTML documents | Короткий TTL или `no-cache` с validation | | API JSON | Обычно private; ETag когда безопасно | | Service worker | Versioned precache; network-first для HTML |
Browser → CDN (HIT) → Origin (MISS only)
**Cache busting** через content hash в имени файла, не только query-string. Для authenticated pages — `private` и осознанный vary по cookies или auth headers.
На интервью: `max-age` vs `s-maxage`; stale-while-revalidate; cache keys CDN; почему нельзя кэшировать персональный HTML на edge.
Типовые ошибки: cache HTML с user-specific data; длинный TTL на unhashed JS; service worker со старыми API после deploy.
Компромисс — скорость против свежести и корректности для logged-in users.
Чеклист:
- Immutable hashed assets на CDN.
- Проверка cacheability HTML и API.
- Стратегия purge при deploy.
- Auth flows с включённым CDN.