Поделиться через


HttpRequestCacheLevel Перечисление

Определение

Указывает поведение кэширования ресурсов, полученных по протоколу HTTP.

public enum class HttpRequestCacheLevel
public enum HttpRequestCacheLevel
type HttpRequestCacheLevel = 
Public Enum HttpRequestCacheLevel
Наследование
HttpRequestCacheLevel

Поля

BypassCache 1

Выполняет запрос, используя сервер. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером. Таким является поведение кэша по умолчанию, указанное в файле конфигурации компьютера, который поставляется с платформой .NET Framework.

CacheIfAvailable 3

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

CacheOnly 2

Выполняет запрос, используя ресурс из локального кэша, и не отправляет запрос элемента, которого нет в кэше. Если указан этот уровень политики кэша, в случае отсутствия элемента в клиентском кэше генерируется исключение WebException.

CacheOrNextCacheOnly 7

Выполняет запрос ресурса из кэша локального компьютера или удаленного кэша локальной сети. Если не удается выполнить запрос, генерируется исключение WebException. В протоколе кэширования HTTP для этого используется директива управления кэшем only-if-cached.

Default 0

Выполняет запрос ресурса с помощью кэшированной копии ресурса или путем отправки запроса ресурса на сервер. Выполняемое действие определяется текущей политикой кэша и временем существования содержимого кэша. Это уровень кэша, который должен использоваться большинством приложений.

NoCacheNoStore 6

Никогда не выполняет запрос, используя ресурсы из кэша, и не кэширует ресурсы. Если ресурс есть в локальном кэше, он удаляется. Этот уровень политики указывает, что ресурс должен быть удален из промежуточных кэшей. В протоколе кэширования HTTP для этого используется директива управления кэшем no-cache.

Refresh 8

Выполняет запрос, используя сервер или кэш, отличный от локального. Перед использованием результата из промежуточного кэша в качестве ответа на запрос кэш должен повторно проверить кэшированную запись для этого результата, обратившись к серверу. В протоколе кэширования HTTP для этого используется директива управления кэшем max-age = 0 и заголовок Pragma no-cache.

Reload 5

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

Revalidate 4

Сравнивает копию ресурса в кэше с копией на сервере. Если копия на сервере более свежая, эта копия возвращается в ответ на запрос и записывается в кэш. Если копия в кэше аналогична копии на сервере, возвращается копия из кэша. В протоколе кэширования HTTP для этого используется условный запрос.

Примеры

В следующем примере кода для политики кэширования домена приложения устанавливается значение По умолчанию.

// The following method demonstrates overriding the
// caching policy for a request.
static WebResponse^ GetResponseNoCache( Uri^ uri )
{
   // Set a default policy level for the "http:" and "https" schemes.
   HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::Default );
   HttpWebRequest::DefaultCachePolicy = policy;

   // Create the request.
   WebRequest^ request = WebRequest::Create( uri );

   // Define a cache policy for this request only. 
   HttpRequestCachePolicy^ noCachePolicy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::NoCacheNoStore );
   request->CachePolicy = noCachePolicy;
   WebResponse^ response = request->GetResponse();
   Console::WriteLine( L"IsFromCache? {0}", response->IsFromCache );
   
   return response;
}
// The following method demonstrates overriding the
// caching policy for a request.
public static WebResponse GetResponseNoCache(Uri uri)
{
    // Set a default policy level for the "http:" and "https" schemes.
    HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);
    HttpWebRequest.DefaultCachePolicy = policy;
    // Create the request.
    WebRequest request = WebRequest.Create(uri);
    // Define a cache policy for this request only.
    HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
    request.CachePolicy = noCachePolicy;
    WebResponse response = request.GetResponse();
    Console.WriteLine("IsFromCache? {0}", response.IsFromCache);
    return response;
}

Комментарии

Это перечисление используется для задания уровня кэша, заданного объектами HttpRequestCachePolicy .

Это BypassCache значение является поведением кэша по умолчанию, указанным в файле конфигурации компьютера, поставляемом с платформа .NET Framework. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером.

Свойство HttpWebRequest.DefaultCachePolicy используется для получения или задания политики кэша по умолчанию для HttpWebRequest экземпляров. Свойство WebRequest.DefaultCachePolicy используется для получения или задания политики кэша по умолчанию для экземпляра WebRequest . Свойство CachePolicy используется для получения или задания политики кэша для определенного запроса.

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

Применяется к

См. также раздел