К практике
НачальныйкэшCDNпроизводительность
⚡JuniorкэшCDNпроизводительностьRedisHTTP
Кэширование
Почему сайты грузятся быстро: браузерный кэш, серверный кэш и CDN.
Слои кэширования — нажми для деталей
← Запрос пользователя проходит сверху вниз (cache hit = останавливается)
↓ cache miss
↓ cache miss
↓ cache miss
Язык примеров:
Шаг 1 из 3
1
Зачем нужен кэш
Проблема без кэша
Каждый запрос — это:
javascript
Пользователь → Сервер → База данных → Сервер → Пользователь
~50-200msЕсли тысяча пользователей одновременно открывает главную страницу — тысяча запросов в БД.
Что такое кэш?
Кэш — промежуточное хранилище быстрых ответов. Первый запрос — дорогой (идём в БД). Последующие — мгновенные (берём из кэша).
javascript
1-й запрос: Пользователь → Сервер → БД (100ms) → сохранить в кэш
2-й запрос: Пользователь → Сервер → Кэш (1ms) ← cache hit!Браузерный кэш и Cache-Control
Сервер говорит браузеру — сколько хранить ответ:
http
HTTP/1.1 200 OK
Cache-Control: max-age=3600 ← хранить 1 час
ETag: "abc123" ← хэш версии ресурсаПри следующем запросе браузер проверяет: не истёк ли кэш?
- Если нет — берёт локально (0 мс, 0 байт трафика!)
- Если истёк — посылает ETag, сервер отвечает 304 Not Modified (если не менялось)
TTL — время жизни кэша
TTL (Time To Live) — сколько секунд кэш считается актуальным.
- Статика (картинки, CSS) → TTL = дни/недели
- API данные → TTL = секунды/минуты
- Персональные данные (корзина) → не кэшировать!