«Cache-Control: max-age = 0, no-cache», но браузер обходит запрос сервера (и обращается к кешу)?
Я использую Chrome 40 (так что-то хорошее и современное).
Cache-Control: max-age=0, no-cache
установлен на всех страницах - поэтому я ожидаю, что браузер будет использовать что-то из своего кэша только в том случае, если он сначала проверил сервер и получил304 Not Modified
ответ.
Однако после нажатия кнопки «Назад» браузер весело обращается к своему кешу без проверки с сервером.
Если я открываю ту же страницу, как я достиг с помощью кнопки «Назад», в новой вкладке, то он проверяет сервер (и получает303 See Other
ответ как все изменилось).
См. Снимки экрана ниже, показывающие выходные данные для двух разных случаев на вкладке «Сеть» в Chrome Developer Tools.
Я думал, что мог бы использоватьmax-age=0, no-cache
в качестве более легкой альтернативы весуno-store
где я не хочу, чтобы пользователи видели устаревшие данные с помощью кнопки «назад» (но там, где данные не имеют ценности и поэтому могут быть кэшированы).
Мое пониманиеno-cache
(увидетьВот а такжеВот на SO) заключается в том, что браузер должен всегда повторной проверки всех ответов. Так почему же Chrome не делает этого при использовании кнопки «Назад»?
Являетсяno-store
единственный вариант?
200
ответ (из кеша) на нажатие кнопки назад:
303
ответ на запрос той же страницы в новой вкладке: