Выбор ответа Middle Кеширование спрашивают часто обновлено

Ключ кеша для персональных данных

Вопрос

Эндпоинт /api/profile закеширован целиком по URL. Что может пойти не так?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Все получат профиль первого пользователя: в ключе нет пользователя. URL одинаковый для всех, а содержимое зависит от пользователя.

Варианты ответа

  1. Ответ станет медленнее: кеш по URL сериализует весь профиль заново
  2. Кеш не сохранится, потому что URL с /api/ не кешируется по умолчанию
  3. Ничего: URL уникален, значит, и закешированный ответ будет правильным
  4. Все получат профиль первого пользователя: в ключе нет пользователяправильный ответ

Разбор

URL одинаковый для всех, а содержимое зависит от пользователя. Ключ должен включать идентификатор пользователя (и, если нужно, роль или язык), а для HTTP-кеша нужны Cache-Control: private и Vary. Иначе это утечка персональных данных. Такие ошибки реально случались у крупных сервисов при неправильной настройке CDN.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.