Що станеться, якщо ви не встановите кеш-керуючий заголовок?


14

Що станеться, якщо ви не встановите cache-controlзаголовок? Чи вказує HTTP поведінку за замовчуванням, якої повинні дотримуватися клієнти, або це вирішувати клієнти?

У Chrome я бачив деякі запити Javascript, у яких cache-controlзаголовки не відображаються як 200 (from disk cache). Чи оптимізує це Chrome?

У IE я бачив, як це відображається як 304 (not modified).

Як я це краще розумію?


1
"немає заголовків кеша", що означає відсутність заголовка кеш-керування, чи насправді немає заголовків кеша? Кеш-контроль - не єдиний заголовок, який впливає на кешування. Більшість веб-серверів надсилають заголовки Останніх змін для статичних активів, таких як файли Javascript.
Тим Фонтан

Відповіді:


18

Якщо немає Cache-Controlзаголовка і немає Expiresзаголовка, але є Last-Modifiedзаголовок (який більшість веб-серверів за замовчуванням надсилає для статичних активів), більшість браузерів використовуватиме евристичну свіжість, щоб визначити, як довго кешувати цей актив.

Типовий розрахунок для цього (який запропоновано RFC 7234 ):

(current time - last modified time) / 10

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

Зауважте, що у більшості випадків, якщо ви натиснете оновити, ви скажете браузеру отримати нову версію, тож у цій ситуації ця логіка не застосовуватиметься.


2
А якщо немає Last-Modifiedзаголовка?
bertonc96
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.