Выбор ответа Junior Кеширование спрашивают часто обновлено
Как работает ETag
Вопрос
Браузер хранит ответ с ETag: "v7", и тот устарел. Что произойдёт при следующем запросе, если на сервере версия не менялась?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Браузер пришлёт If-None-Match: "v7", сервер ответит 304 без тела. Для ревалидации GET используется If-None-Match, и при совпадении сервер отвечает 304 Not Modified без тела.
Варианты ответа
- Браузер пришлёт If-None-Match: "v7", сервер ответит 304 без телаправильный ответ
- Браузер пришлёт If-Match: "v7", сервер ответит 200 с полным телом
- Браузер возьмёт ответ из кеша и вообще не станет обращаться к серверу
- Сервер ответит 412 Precondition Failed, и браузер повторит запрос
Разбор
Для ревалидации GET используется If-None-Match, и при совпадении сервер отвечает 304 Not Modified без тела. If-Match нужен для условных изменений (PUT/PATCH), а не для кеша. Взять из кеша без запроса можно только пока ответ свежий, а он устарел. 412 приходит, когда не выполнено условие If-Match.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.