Compartilhar via


HttpRequestCacheLevel Enumeração

Definição

Especifica o comportamento de cache para recursos obtidos usando o protocolo HTTP.

public enum class HttpRequestCacheLevel
public enum HttpRequestCacheLevel
type HttpRequestCacheLevel = 
Public Enum HttpRequestCacheLevel
Herança
HttpRequestCacheLevel

Campos

BypassCache 1

Atende a uma solicitação usando o servidor. Nenhuma entrada é retirada, adicionada ou removida dos caches entre o cliente e o servidor. Nenhuma entrada é retirada, adicionada ou removida dos caches entre o cliente e o servidor. Esse é o comportamento de cache padrão especificado no arquivo de configuração do computador fornecido com o .NET Framework.

CacheIfAvailable 3

Atenderá a uma solicitação para um recurso do cache se o recurso estiver disponível, caso contrário, enviará uma solicitação para um recurso ao servidor. Se o item solicitado estiver disponível em qualquer cache entre o cliente e o servidor, a solicitação poderá ser atendida pelo cache intermediário.

CacheOnly 2

Atende a uma solicitação usando o recurso armazenado localmente em cache; não envia uma solicitação para um item que não está no cache. Ao se especificar esse nível de política de cache, uma exceção WebException será lançada se o item não estiver no cache do cliente.

CacheOrNextCacheOnly 7

Atende a uma solicitação para um recurso do cache do computador local ou um cache remoto para a rede local. Se a solicitação não puder ser atendida, uma exceção WebException será lançada. No protocolo de cache HTTP, isso é feito usando a diretiva de controle de cache only-if-cached.

Default 0

Atende a uma solicitação para um recurso usando a cópia em cache do recurso ou enviando uma solicitação para o recurso ao servidor. A ação adotada é determinada pela política de cache em vigor e o tempo decorrido do conteúdo no cache. Esse é o nível de cache que deve ser usado pela maioria dos aplicativos.

NoCacheNoStore 6

Nunca atende a uma solicitação usando os recursos do cache e não armazena os recursos em cache. Se o recurso estiver presente no cache local, ele será removido. Esse nível de política indica aos caches intermediários que eles devem remover o recurso. No protocolo de cache HTTP, isso é feito usando a diretiva de controle de cache sem cache.

Refresh 8

Atende uma solicitação usando o servidor ou um cache diferente do cache local. Antes de a solicitação poder ser atendida por um cache intermediário, esse cache deve revalidar sua entrada armazenada em cache com o servidor. No protocolo de cache HTTP, isso é feito usando a diretiva de controle de cache max-age = 0 no cabeçalho Pragma sem cache.

Reload 5

Atende a uma solicitação usando o servidor. A resposta pode ser salva no cache. No protocolo de cache HTTP, isso é feito usando a diretiva de controle de cache sem cache e o cabeçalho Pragma sem cache.

Revalidate 4

Compara a cópia do recurso no cache com a cópia no servidor. Se a cópia no servidor for mais recente, ela será usada para atender à solicitação e substituirá a cópia em cache. Se a cópia em cache for igual à cópia do servidor, a cópia armazenada em cache será usada. No protocolo de cache HTTP, isso é feito usando uma solicitação condicional.

Exemplos

O exemplo de código a seguir define a política de cache do domínio do aplicativo como Padrão.

// 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;
}

Comentários

Essa enumeração é usada para definir o nível de cache especificado pelos HttpRequestCachePolicy objetos.

Esse BypassCache valor é o comportamento de cache padrão especificado no arquivo de configuração do computador fornecido com o .NET Framework. Nenhuma entrada é retirada, adicionada ou removida dos caches entre o cliente e o servidor.

A HttpWebRequest.DefaultCachePolicy propriedade é usada para obter ou definir a política de cache padrão para HttpWebRequest instâncias. A WebRequest.DefaultCachePolicy propriedade é usada para obter ou definir a política de cache padrão para uma WebRequest instância. A CachePolicy propriedade é usada para obter ou definir a política de cache para uma solicitação específica.

Uma cópia de um recurso só será adicionada ao cache se o fluxo de resposta do recurso for recuperado e lido até o final do fluxo. Portanto, outra solicitação para o mesmo recurso pode usar uma cópia armazenada em cache, dependendo do nível de política de cache padrão para essa solicitação.

Aplica-se a

Confira também