Я понимаю, что Ctrl+ Refresh выбирает свежий контент из браузера без чтения кеша. Тогда что такое Ctrl+ Shift+ Refresh для?
Ctrl + Обновить заголовок запроса так:
Cache-Control : max-age=0
для Ctrl+ Shift+ Обновить
Pragma : no-cache <br>
Cache-Control : no-cache
В чем реальная разница?
Ответы:
Оба идентично браузеру на локальной машине. Заголовки, которые вы упомянули, являются единственной разницей.
Заголовок Ctrl + Refresh означает, что любые кэширующие серверы на этом пути должны возвращать свежую копию страницы.
Заголовки Ctrl + Shift + Refresh означают, что любые кэширующие серверы на этом пути должны возвращать свежую копию страницы, а также не должны кэшировать страницу для любых будущих запросов. Другими словами, при следующем запросе страницы она должна либо использовать предыдущий кеш страницы, либо запросить новую копию, но не должна использовать эту.
Pragma: no-cache - это версия Cache-Control для HTTP 1.0: no-cache. Нет HTTP 1.0, эквивалентного Cache-Control: max-age = 0.
RFC2616 раздел 14 подраздел 9 имеет соответствующую информацию: w3c.org: RFC2616 sec 14.9.1
источник
Есть еще одна разница, и большая в этом.
Когда вы нажимаете Ctrl + Refresh, для каждого кэшированного объекта, имеющего заголовок
Last-Modified
илиETag
, браузер отправляет запрос с заголовкомIf-Modified-Since
илиIf-None-Match
. Сервер может затем выбрать ответ304 Not Modified
без повторной отправки каких-либо данных (при условии, что данные, по сути, не изменены).Когда вы нажимаете Ctrl + Shift + Refresh, браузер не будет выдавать такие условные
If-*
заголовки, не оставляя серверу никакой возможности, кроме как снова отправить данные.источник