Что произойдет, если вы не установите заголовок управления кэшем?

13

Что произойдет, если вы не установите cache-controlзаголовок? Указывает ли HTTP поведение по умолчанию, которому должны следовать клиенты, или это решать самим клиентам?

В Chrome я видел некоторые запросы Javascript, в которых cache-controlзаголовки не отображаются как 200 (from disk cache). Chrome оптимизирует это?

В IE я видел это как 304 (not modified).

Как я понимаю это лучше?

Nishant
источник
1
«нет заголовков кэша», означающих отсутствие заголовка Cache-Control, или действительно нет заголовков кэша? Cache-control - не единственный заголовок, который влияет на кэширование. Большинство веб-серверов отправляют заголовки Last Modified для статических ресурсов, таких как файлы Javascript.
Тим Фонтан

Ответы:

18

Если Cache-Controlзаголовок отсутствует и заголовок отсутствует Expires, но имеется Last-Modifiedзаголовок (который большинство веб-серверов отправляют по умолчанию для статических ресурсов), большинство браузеров будут использовать эвристическую свежесть для определения продолжительности кэширования этого ресурса.

Типичный расчет для этого (который предложен RFC 7234 ):

(current time - last modified time) / 10

Так, например, если время последнего изменения для изображения указывало, что оно было в последний раз изменено 60 дней назад, браузер может решить, что он может разумно использовать локально кэшированную версию этого изображения в течение 6 дней, прежде чем проверять наличие новой версии.

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

Тим Фонтан
источник
1
А если нет Last-Modifiedзаголовка?
bertonc96