Задав вопрос о отправке «304 Not Modified» для изображений, хранящихся в хранилище данных Google App Engine , у меня теперь есть вопрос о Cache-Control
.
Мое приложение теперь отправляет Last-Modified
и Etag
, но по умолчанию GAE также отправляет Cache-Control: no-cache
. Согласно этой странице :
Директива no-cache, в соответствии с
RFC, сообщает браузеру, что это
должен пройти повторную проверку с сервером
перед обслуживанием страницы из
кэш. [...] На практике IE и
Firefox начал лечить
директива no-cache, как будто она инструктирует
браузер, чтобы даже не кэшировать
стр.
Поскольку я хочу, чтобы браузеры кэшировали изображение, я добавил следующую строку в мой код:
self.response.headers['Cache-Control'] = "public"
По той же странице, что и раньше:
Директива cache-control: public
[...] сообщает браузеру и прокси
[...] что страница может быть кэширована.
Это хорошо для нечувствительных страниц,
как кэширование улучшает производительность.
Вопрос в том, может ли это быть как-то вредно для приложения? Было бы лучше отправить Cache-Control: must-revalidate
, чтобы «заставить» браузер выполнить повторную проверку (я полагаю, именно это поведение изначально было причиной отправки Cache-Control: no-cache
)
Эта директива настаивает на том, чтобы
браузер должен заново подтвердить страницу
против сервера перед его обслуживанием
из кеша. Обратите внимание, что это неявно
позволяет браузеру кэшировать страницу.