Выбор ответа Senior Кеширование обновлено

Ключ кеша и приватность

Вопрос

Почему ключ кеша ответов API должен включать идентификатор пользователя или кеш нужно очищать при выходе?

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

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

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

Коротко

Правильный ответ: Иначе после смены аккаунта на устройстве можно показать персональные данные прошлого пользователя. Персональные ответы (/me/orders) по одинаковому URL у разных пользователей разные.

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

  1. Чтобы кеш занимал меньше места: записи разных пользователей хранятся раздельно и сжимаются эффективнее
  2. Этого требует HTTP/2: кеш без идентификатора пользователя не переиспользует соединение
  3. Чтобы ускорить поиск по кешу: ключ с id пользователя даёт меньше коллизий хеша
  4. Иначе после смены аккаунта на устройстве можно показать персональные данные прошлого пользователяправильный ответ

Разбор

Персональные ответы (/me/orders) по одинаковому URL у разных пользователей разные. Если кеш не учитывает пользователя и не чистится при выходе, следующий вошедший увидит чужие заказы до обновления. Это и баг, и нарушение приватности. Кеш делят на общий (каталог) и пользовательский, который живёт в скоупе сессии.

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

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

Термины по теме