Заголовок с постоянным кэшем - PullRequest
0 голосов
/ 06 апреля 2020

Я читал об неизменяемом заголовке и наткнулся на эту статью, в которой говорилось:

Cache-Control: max-age = 365000000, неизменяемый

Когда клиент поддерживает неизменяемый видит этот атрибут, он должен предполагать, что ресурс, если он не истек, неизменен на сервере и, следовательно, не должен отправлять для него условную повторную проверку (например, If-None-Match или If-Modified-Since) для проверки обновлений. Исправление возможного повреждения (например, перезагрузка смещения в Firefox) никогда не использует условную повторную проверку и все еще имеет смысл делать с неизменяемыми объектами, если вы уверены, что они повреждены.

source

Я не могу понять эту фразу «если не истек, не изменяется на сервере и, следовательно, не должен отправлять условную повторную проверку»

Клиент, по умолчанию не отправляет повторную проверку, пока не истечет максимальный возраст .

Так какой смысл в первую очередь определять неизменяемость?

1 Ответ

1 голос
/ 06 апреля 2020

Люди, нажимающие кнопку refre sh.

Facebook, впервые предложивший эту неизменную директиву о контроле кэша, имеет хороший пост на эту о том, как он спас им огромное количество запросов, включая эту цитату:

Проблема с перезагрузками

Существует кнопка перезагрузки браузера, позволяющая пользователю получать обновленную версию текущей страницы , Для достижения этой цели при перезагрузке браузеры повторно проверяют страницу, на которой вы сейчас находитесь, даже если эта страница еще не истекла. Тем не менее, они также go делают шаг вперед и повторно проверяют все подресурсы на странице - такие как изображения и JavaScript файлы.

...