no-cache vs max-age=0, must-revalidate, proxy-revalidate

В чем разница между ответом HTTP с Cache-Control: no-cache и Cache-Control: max-age=0, must-revalidate, proxy-revalidate?

Считают ли браузеры это идентичным?


person Pacerier    schedule 14.03.2013    source источник
comment
Семантически; немного. Зато короче.   -  person Mark Nottingham    schedule 20.04.2013
comment
@МаркНоттингем. Справедливо ли это и в реальном мире? Действительно ли браузеры воспринимают их как идентичные?   -  person Pacerier    schedule 20.04.2013
comment
Давно не проверял, но думаю да.   -  person Mark Nottingham    schedule 22.04.2013
comment
Связано: В чем разница между Cache-Control: max-age=0 и no-cache?   -  person Fabrício Matté    schedule 27.02.2014


Ответы (1)


В общем, разные браузеры ведут себя по-разному. Заголовки кэша HTTP.

Я помню одно небольшое отличие (не могу найти источник, поэтому я не на 100%, это точное описание поведения) заключается в том, что Chrome (справедливо) обрабатывает max-age=0, как если бы вы указали max-age=10 (при условии, что разница в поведении достаточно мала, но влияние на производительность по-прежнему значимо).

В любом случае, вот еще несколько примеров различий в поведении кэша HTTP между браузерами:

  • Некоторые отдают предпочтение заголовку кэша HTTP 1.0 (Pragma), другие отдают предпочтение заголовкам кэша HTTP 1.1.
  • Некоторые браузеры (FF +?) не соблюдают директиву no-store и хранят данные в зашифрованном виде. тайник
  • Некоторые браузеры игнорируют директиву no-cache, указанную после public, другие нет.
  • IE игнорирует max-age, когда присутствует vary.
  • и т.п.

Моя общая рекомендация состоит в том, чтобы использовать как Cache-Control: no-cache, must-revalidate, proxy-revalidate, pragma: no-cache (HTTP 1.0), так и Expires: 0, чтобы убедиться, что все браузеры не кэшируют содержимое с этими заголовками.

person Lior Bar-On    schedule 15.08.2014
comment
Откуда вы узнали, что Chrome обрабатывает max-age=0 так, как если бы мы указали max-age=10? - person Pacerier; 15.08.2014
comment
Я это помню, но не могу найти источник. Я обновлю ответ с оговоркой, пока не найду правильный источник. В любом случае: я могу привести еще несколько примеров того, как браузеры ведут себя иначе. Заголовки кэша HTTP. - person Lior Bar-On; 15.08.2014