Разница между Ctrl + Обновить и Ctrl + Shift + Обновить?

14748
Alagu

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

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

Cache-Control : max-age=0 

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

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

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

9
Какой браузер вы используете? Ctrl + Shift + F5 ничего не делает в Firefox 3.5 или IE 6. 14 лет назад 4
Я всегда думал, что CTRL + SHIFT + REFRESH - это уловка, которую программисты рассказывают своим клиентам ... user2980 14 лет назад 2
@ user2980 ну ты не прав :) RomanSt 12 лет назад 0

2 ответа на вопрос

11

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

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

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

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

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