2016-06-05 3 views
1

В моем веб-приложение, некоторые страницы, у меня есть два сценария для кэша браузераответный заголовок для кэширования ответа?

Сценарий 1: - Я хочу сервера из кэша браузера, если не изменяется на стороне сервера. Например: -

  1. Пользователь выдает запрос для всех сотрудников
  2. Response возвращает 10 сотрудников
  3. Пользователь выдает запрос для всех сотрудников снова
  4. Expectation это время он должен быть подан из кэша браузера
  5. Пользователь создает еще один сотрудник
  6. Пользователь выдает запрос для всех сотрудников снова
  7. Expectation это время он должен быть подан последний из сервера, а в кэше браузера

Я планирую использовать под заголовком

response.setHeader("Cache-Control", "no-cache"); 

Как

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

Сценарий 2: - Но для некоторых чувствительных страниц я не хочу, чтобы кэшировать вообще, я планирую его использовать ниже заголовка

response.setHeader("Cache-Control", "no-store"); 

Но некоторые статьи безопасны для использования ниже заголовка, чтобы заставить его работать для всех браузеров. Поэтому я буду использовать ниже

response.setHeader("Cache-Control", "no-cache, no-store"); 

Является ли моя предлагаемая реализация правильной?

ответ

2

Для Сценарий # 1 вам действительно нужно установить Cache-Control к no-cache (или установить max-age для еще лучшей масштабируемости, но в этом случае у вас не будет необходимости последнее значение), но вы также должны использовать HTTP заголовок ETag, чтобы браузер мог проверить, изменилось ли содержимое данных, чтобы браузер мог узнать, можно ли повторно использовать элемент кэша или нет.

Для Сценарий № 2 вам необходимо установить Cache-Control в no-store, чтобы предотвратить браузер для кэширования данных, поскольку это является стандартным способом, но на самом деле no-cache, no-store поможет работать на старых браузерах, если вам нужно поддерживать их.

Смежные вопросы