Это хорошо к установлено “Управление Кэша: общественность” при отправке “304 Не Измененный” для изображений сохранена в хранилище данных

После задавания вопроса об отправке “304 Не Измененный” для изображений, сохраненных в в хранилище данных Google App Engine, у меня теперь есть вопрос о Cache-Control.

Мое приложение теперь отправляет Last-Modified и Etag, но по умолчанию GAE alsto отправляет Cache-Control: no-cache. Согласно этой странице:

Директива “без кэшей”, согласно RFC, говорит браузеру, что это должно подтвердить с сервером прежде, чем служить странице от кэша. [...] На практике, IE и Firefox начали рассматривать директиву без кэшей, как будто это сообщает, что браузер не к даже кэширует страницу.

Поскольку я ДЕЙСТВИТЕЛЬНО хочу, чтобы браузеры кэшировали изображение, я добавил следующую строку к своему коду:

self.response.headers['Cache-Control'] = "public"

Согласно той же странице как прежде:

“Управление кэша: общедоступная” директива [...] говорит браузеру и прокси [...], что страница может кэшироваться. Это хорошо для нечувствительных страниц, поскольку кэширование улучшает производительность.

Вопрос состоит в том, если это могло бы быть вредно для приложения в некотором роде? Было бы лучше отправить Cache-Control: must-revalidate чтобы "вынудить" браузер подтвердить (я предполагаю, это - поведение, которое было первоначально причиной позади отправки Cache-Control: no-cache)

Эта директива настаивает, чтобы браузер подтвердил страницу против сервера прежде, чем служить ей от кэша. Обратите внимание, что это неявно позволяет кэшу браузера страница.

9
задан Community 23 May 2017 в 12:01
поделиться

3 ответа

Нет необходимости устанавливать Cache-Control: public , если ваш контент не защищен аутентификацией HTTP или SSL.

Попробуйте установить Cache-Control: max-age = nn (где nn - целое число секунд, в течение которых вы хотите, чтобы кеши считали ответ свежим). AppEngine должен удалить отсутствие кеширования.

1
ответ дан 5 December 2019 в 02:07
поделиться

Это не может быть вредным для вашего приложения, единственный риск, описанный на этой странице, заключается в том, что публичные прокси (например, используемые интернет-провайдерами) кэшируют ваше изображение. Если изображение является конфиденциальным или специфическим для пользователя, вы не захотите, чтобы это произошло. Во всех остальных случаях кэширование - это именно то, что вам нужно.

0
ответ дан 5 December 2019 в 02:07
поделиться

Смотрите http://www.kyle-jensen.com/proxy-caching-on-google-appengine, там дается хорошее объяснение установки заголовков cache-control для GAE.

1
ответ дан 5 December 2019 в 02:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: