Что делает CDN и когда он нужен?
- Зачем сайту CDN?
- Как CDN кэширует файлы?
CDN — сеть серверов по всему миру (или стране), которые кэшируют копии ваших файлов и отдают их пользователю с ближайшего узла. Сайт грузится быстрее (меньше расстояние и задержка), основной сервер разгружается, а всплески трафика и часть атак поглощает CDN. Что и сколько кэшировать, определяют заголовки Cache-Control; при обновлении файлы инвалидируют или дают им новые имена (хеш в имени: app.3f2a.js).
- Статика (картинки, JS, CSS, видео) — главный кандидат
- Персональные ответы API обычно не кэшируют или кэшируют осторожно
- CDN часто сам выпускает сертификат и терминирует HTTPS
А ещё Хеш в имени файла + долгий max-age — простое и надёжное кэширование статики
Подробно
Как работает: DNS домена указывает на CDN; пользователь приходит на ближайший узел; если файла в кэше нет — узел забирает его с исходного сервера (origin), сохраняет и отдаёт; следующие пользователи получают копию из кэша.
Заголовки:
Cache-Control: public, max-age=31536000, immutable # app.3f2a.js
Cache-Control: no-cache # index.html
HTML проверяется каждый раз, а ресурсы с хешем в имени кэшируются на год: новая версия получает новое имя.
Что хотят услышать
- Кэширование на ближайших узлах.
- Скорость, разгрузка, защита.
- Cache-Control и инвалидация.
- Что кэшировать, а что нет.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗CDN — это резервная копия базы данных
- ✓CDN кэширует файлы на серверах рядом с пользователями: сайт быстрее, основной сервер разгружен; кэшированием управляет Cache-Control
- ✗CDN хранит единственную копию сайта вместо основного сервера и отдаёт одинаковые ответы всем, включая персональные данные API
- ✗CDN замедляет загрузку, потому что добавляет промежуточный узел
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.