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

Определение

Указывает поведение кэширования ресурсов, полученных по протоколу HTTP.Specifies caching behavior for resources obtained using the Hypertext Transfer protocol (HTTP).

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

Поля

BypassCache 1

Выполняет запрос, используя сервер.Satisfies a request by using the server. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером.No entries are taken from caches, added to caches, or removed from caches between the client and server. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером.No entries are taken from caches, added to caches, or removed from caches between the client and server. Таким является поведение кэша по умолчанию, указанное в файле конфигурации компьютера, который поставляется с платформой .NET Framework.This is the default cache behavior specified in the machine configuration file that ships with the .NET Framework.

CacheIfAvailable 3

Выполняет запрос ресурса из кэша, если ресурс доступен, в противном случае отправляет запрос ресурса на сервер.Satisfies a request for a resource from the cache if the resource is available; otherwise, sends a request for a resource to the server. Если запрошенный элемент доступен в каком-либо кэше между клиентом к сервером, запрос может быть выполнен промежуточным кэшем.If the requested item is available in any cache between the client and the server, the request might be satisfied by the intermediate cache.

CacheOnly 2

Выполняет запрос, используя ресурс из локального кэша, и не отправляет запрос элемента, которого нет в кэше.Satisfies a request using the locally cached resource; does not send a request for an item that is not in the cache. Если указан этот уровень политики кэша, в случае отсутствия элемента в клиентском кэше генерируется исключение WebException.When this cache policy level is specified, a WebException exception is thrown if the item is not in the client cache.

CacheOrNextCacheOnly 7

Выполняет запрос ресурса из кэша локального компьютера или удаленного кэша локальной сети.Satisfies a request for a resource either from the local computer's cache or a remote cache on the local area network. Если не удается выполнить запрос, генерируется исключение WebException.If the request cannot be satisfied, a WebException exception is thrown. В протоколе кэширования HTTP для этого используется директива управления кэшем only-if-cached.In the HTTP caching protocol, this is achieved using the only-if-cached cache control directive.

Default 0

Выполняет запрос ресурса с помощью кэшированной копии ресурса или путем отправки запроса ресурса на сервер.Satisfies a request for a resource either by using the cached copy of the resource or by sending a request for the resource to the server. Выполняемое действие определяется текущей политикой кэша и временем существования содержимого кэша.The action taken is determined by the current cache policy and the age of the content in the cache. Это уровень кэша, который должен использоваться большинством приложений.This is the cache level that should be used by most applications.

NoCacheNoStore 6

Никогда не выполняет запрос, используя ресурсы из кэша, и не кэширует ресурсы.Never satisfies a request by using resources from the cache and does not cache resources. Если ресурс есть в локальном кэше, он удаляется.If the resource is present in the local cache, it is removed. Этот уровень политики указывает, что ресурс должен быть удален из промежуточных кэшей.This policy level indicates to intermediate caches that they should remove the resource. В протоколе кэширования HTTP для этого используется директива управления кэшем no-cache.In the HTTP caching protocol, this is achieved using the no-cache cache control directive.

Refresh 8

Выполняет запрос, используя сервер или кэш, отличный от локального.Satisfies a request by using the server or a cache other than the local cache. Перед использованием результата из промежуточного кэша в качестве ответа на запрос кэш должен повторно проверить кэшированную запись для этого результата, обратившись к серверу.Before the request can be satisfied by an intermediate cache, that cache must revalidate its cached entry with the server. В протоколе кэширования HTTP для этого используется директива управления кэшем max-age = 0 и заголовок Pragma no-cache.In the HTTP caching protocol, this is achieved using the max-age = 0 cache control directive and the no-cache Pragma header.

Reload 5

Выполняет запрос, используя сервер.Satisfies a request by using the server. Ответ может быть сохранен в кэше.The response might be saved in the cache. В протоколе кэширования HTTP для этого используется директива управления кэшем no-cache и заголовок Pragma no-cache.In the HTTP caching protocol, this is achieved using the no-cache cache control directive and the no-cache Pragma header.

Revalidate 4

Сравнивает копию ресурса в кэше с копией на сервере.Compares the copy of the resource in the cache with the copy on the server. Если копия на сервере более свежая, эта копия возвращается в ответ на запрос и записывается в кэш.If the copy on the server is newer, it is used to satisfy the request and replaces the copy in the cache. Если копия в кэше аналогична копии на сервере, возвращается копия из кэша.If the copy in the cache is the same as the server copy, the cached copy is used. В протоколе кэширования HTTP для этого используется условный запрос.In the HTTP caching protocol, this is achieved using a conditional request.

Примеры

В следующем примере кода для политики кэширования домена приложения устанавливается значение по умолчанию.The following code example sets the application domain's caching policy to Default.

// 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 объектами.This enumeration is used to set the cache level specified by HttpRequestCachePolicy objects.

Это BypassCache значение является поведением кэша по умолчанию, указанным в файле конфигурации компьютера, который поставляется с .NET Framework.This BypassCache value is the default cache behavior specified in the machine configuration file that ships with the .NET Framework. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером.No entries are taken from caches, added to caches, or removed from caches between the client and server.

Свойство используется для получения или задания политики кэша по умолчанию для HttpWebRequest экземпляров. HttpWebRequest.DefaultCachePolicyThe HttpWebRequest.DefaultCachePolicy property is used to get or set the default cache policy for HttpWebRequest instances. Свойство используется для получения или задания политики кэша по умолчанию WebRequest для экземпляра. WebRequest.DefaultCachePolicyThe WebRequest.DefaultCachePolicy property is used to get or set the default cache policy for a WebRequest instance. CachePolicy Свойство используется для получения или задания политики кэша для конкретного запроса.The CachePolicy property is used to get or set the cache policy for a specific request.

Копия ресурса добавляется в кэш только в том случае, если поток ответа для ресурса извлекается и считывается в конец потока.A copy of a resource is only added to the cache if the response stream for the resource is retrieved and read to the end of the stream. Поэтому другой запрос к тому же ресурсу может использовать кэшированную копию в зависимости от уровня политики кэша по умолчанию для этого запроса.So another request for the same resource could use a cached copy, depending on the default cache policy level for this request.

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

Дополнительно