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

Как работает ETag

Вопрос

Браузер хранит ответ с ETag: "v7", и тот устарел. Что произойдёт при следующем запросе, если на сервере версия не менялась?

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

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

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

Коротко

Правильный ответ: Браузер пришлёт If-None-Match: "v7", сервер ответит 304 без тела. Для ревалидации GET используется If-None-Match, и при совпадении сервер отвечает 304 Not Modified без тела.

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

  1. Браузер пришлёт If-None-Match: "v7", сервер ответит 304 без телаправильный ответ
  2. Браузер пришлёт If-Match: "v7", сервер ответит 200 с полным телом
  3. Браузер возьмёт ответ из кеша и вообще не станет обращаться к серверу
  4. Сервер ответит 412 Precondition Failed, и браузер повторит запрос

Разбор

Для ревалидации GET используется If-None-Match, и при совпадении сервер отвечает 304 Not Modified без тела. If-Match нужен для условных изменений (PUT/PATCH), а не для кеша. Взять из кеша без запроса можно только пока ответ свежий, а он устарел. 412 приходит, когда не выполнено условие If-Match.

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

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