Выбор ответа Senior Кеширование обновлено
Ключ кеша и приватность
Вопрос
Почему ключ кеша ответов API должен включать идентификатор пользователя или кеш нужно очищать при выходе?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Иначе после смены аккаунта на устройстве можно показать персональные данные прошлого пользователя. Персональные ответы (/me/orders) по одинаковому URL у разных пользователей разные.
Варианты ответа
- Чтобы кеш занимал меньше места: записи разных пользователей хранятся раздельно и сжимаются эффективнее
- Этого требует HTTP/2: кеш без идентификатора пользователя не переиспользует соединение
- Чтобы ускорить поиск по кешу: ключ с id пользователя даёт меньше коллизий хеша
- Иначе после смены аккаунта на устройстве можно показать персональные данные прошлого пользователяправильный ответ
Разбор
Персональные ответы (/me/orders) по одинаковому URL у разных пользователей разные. Если кеш не учитывает пользователя и не чистится при выходе, следующий вошедший увидит чужие заказы до обновления. Это и баг, и нарушение приватности. Кеш делят на общий (каталог) и пользовательский, который живёт в скоупе сессии.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.