Выбор ответа Middle Кеширование спрашивают часто обновлено
Ключ кеша для персональных данных
Вопрос
Эндпоинт /api/profile закеширован целиком по URL. Что может пойти не так?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Все получат профиль первого пользователя: в ключе нет пользователя. URL одинаковый для всех, а содержимое зависит от пользователя.
Варианты ответа
- Ответ станет медленнее: кеш по URL сериализует весь профиль заново
- Кеш не сохранится, потому что URL с
/api/не кешируется по умолчанию - Ничего: URL уникален, значит, и закешированный ответ будет правильным
- Все получат профиль первого пользователя: в ключе нет пользователяправильный ответ
Разбор
URL одинаковый для всех, а содержимое зависит от пользователя. Ключ должен включать идентификатор пользователя (и, если нужно, роль или язык), а для HTTP-кеша нужны Cache-Control: private и Vary. Иначе это утечка персональных данных. Такие ошибки реально случались у крупных сервисов при неправильной настройке CDN.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.