что произошло, если заголовок элемента управления кэшем HTTP-запроса отличается от заголовка элемента управления кэшем ответа - PullRequest
0 голосов
/ 10 апреля 2020

enter image description here

См. Скриншот выше. Заголовок ответа имеет элемент управления кэшированием, установленный на max-age, что означает максимальное время, в течение которого ресурс считается свободным sh. Я полагаю, что если мы сделаем запрос в установленные сроки, браузер будет обслуживать локальные копии , не обращая внимания на запрос сервера. , а заголовок запроса имеет элемент управления кэшированием, установленный на no-cache, что означает в соответствии с MDN , ответ

может храниться в любом кэше, даже если запрос обычно не кэшируется. Тем не менее, сохраненный ответ ДОЛЖЕН всегда go путем проверки на сервере происхождения перед его использованием,

Так что здесь мы имеем противоречие. Будет ли браузер соответствовать какой директиве управления кэшем в этом случае, то есть будет ли он проверять с сервером каждый раз, когда запрос запускается, как предлагает on-cache, или он не будет проверять с помощью сервера, если запрос находится в пределах времени, установленного max-age

1 Ответ

1 голос
/ 11 апреля 2020

Нет противоречия. no-cache в запросе сообщает любым промежуточным серверам , что они не могут ответить кэшированной копией; они должны связаться с сервером происхождения. max-age в ответе сообщает клиенту , как долго он может считать ответ fre sh. Обратите внимание, что не имеет смысла спрашивать, будет ли браузер «соответствовать» заголовку запроса; именно он создает заголовок запроса.

В более общем смысле, смысл в том, что заголовки означают разные вещи в запросах и ответах. Это не очевидно в статье о MDN, но различие изложено в спецификации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...