9

Я понимаю, что Ctrl + Refresh выбирает свежий контент из браузера без чтения кеша. Тогда для чего нужны Ctrl + Shift + Refresh?

Ctrl + Обновить заголовок запроса так:

Cache-Control : max-age=0

для Ctrl + Shift + Обновить

Pragma : no-cache <br>
Cache-Control : no-cache

В чем реальная разница?

2 ответа2

12

Оба идентично браузеру на локальной машине. Заголовки, которые вы упомянули, являются единственной разницей.

Заголовок 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.

1

Есть еще одна разница, и большая в этом.

Когда вы нажимаете Ctrl+Refresh, для каждого кэшированного объекта, который имеет заголовок Last-Modified или ETag , браузер выдаст запрос с заголовком If-Modified-Since или If-None-Match . Сервер может затем выбрать ответ 304 Not Modified без повторной отправки каких-либо данных (при условии, что данные, по сути, не изменены).

Когда вы нажимаете Ctrl+Shift+Refresh, браузер не будет выдавать такие условные заголовки If-* , не оставляя серверу никакой возможности, кроме как снова отправить данные.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .