Политики кэша на основе расположения
Политики кэша на основе расположения определяют актуальность действительных записей в кэше на основе расположения, в котором может быть получен запрашиваемый ресурс. Кэшируемый ресурс является действительным, если он не нарушает требований сервера по повторной проверке. Политика кэша на основе расположения создается программным способом с помощью конструктора класса RequestCachePolicy или HttpRequestCachePolicy. Тип политики на основе расположения передается в конструктор с помощью значения перечисления RequestCacheLevel или HttpRequestCacheLevel. Примеры кода с созданием политик на основе расположения см. в разделе Практическое руководство. Установка политики кэша на основе расположения для приложения. В следующих разделах приводится описание каждого типа политики кэша на основе расположения для ресурсов HTTP и HTTPS.
Политика "Из кэша при наличии"
Если действительный запрошенный ресурс есть в локальном кэше, используется кэшированный ресурс; в противном случае запрос к ресурсу отправляется на сервер. Если запрошенный ресурс доступен в любом кэше между клиентом и сервером, запрос будет выполнен промежуточным кэшем.
Политика "Только из кэша"
Если действительный запрошенный ресурс есть в локальном кэше, используется кэшированный ресурс. При указании этого уровня политики кэша исключение WebException выдается, если элемент не существует в локальном кэше.
Политика "Только из локального кэша"
Если действительный запрошенный ресурс есть в локальном кэше или в промежуточном кэше в локальной сети, используется кэшированный ресурс. В противном случае возникнет исключение WebException. В протоколе кэширования HTTP для этого используется директива управления кэшем "Только если содержится в кэше" (only-if-cached).
Политика "Не использовать кэш"
В этой политике запрошенные ресурсы из кэша никогда не используются, а ресурсы никогда не помещаются в кэш. Если запрошенный ресурс присутствует в локальном кэше, он удаляется. При использовании этого уровня политики также удаляется ресурс в промежуточном кэше. В протоколе кэширования HTTP для этого используется директива управления кэшем "Не сохранять в кэше" (no-store).
Политика "Обновление"
Запрошенный ресурс может использоваться, если он получен с сервера или найден в кэше (за исключением локального кэша). Перед использованием результата из промежуточного кэша в качестве ответа на запрос кэш должен повторно проверить кэшированную запись для этого результата, обратившись к серверу. В протоколе кэширования HTTP для этого используются директива управления кэшем "Максимальный возраст — 0" (max-age = 0) и заголовок Pragma "Без кэширования" (no-cache).
политика повторной загрузки
Запрошенные ресурсы необходимо получать от сервера. Ответ может быть сохранен в локальном кэше. В протоколе кэширования HTTP для этого используются директива управления кэшем "Не сохранять в кэше" (no-store) и заголовок Pragma "Без кэширования" (no-cache).
Политика "Повторная проверка"
Сравнивает копию ресурса в кэше с копией на сервере. Если копия на сервере более свежая, эта копия возвращается в ответ на запрос и записывается в кэш. Если копия в кэше аналогична копии на сервере, возвращается копия из кэша. В протоколе кэширования HTTP для этого используется условный запрос.