HttpRequestCacheLevel Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica o comportamento de cache para recursos obtidos usando o protocolo Hypertext Transfer (HTTP).
public enum class HttpRequestCacheLevel
public enum HttpRequestCacheLevel
type HttpRequestCacheLevel =
Public Enum HttpRequestCacheLevel
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| Default | 0 | Satisfaz um pedido para um recurso usando a cópia em cache do recurso ou enviando um pedido para o servidor. A ação tomada é determinada pela política atual da cache e pela idade do conteúdo na cache. Este é o nível de cache que deve ser usado pela maioria das aplicações. |
| BypassCache | 1 | Satisfaz um pedido usando o servidor. Nenhuma entrada é retirada das caches, adicionada às caches ou removida das caches entre o cliente e o servidor. Nenhuma entrada é retirada das caches, adicionada às caches ou removida das caches entre o cliente e o servidor. Este é o comportamento de cache predefinido especificado no ficheiro de configuração da máquina que vem com o .NET Framework. |
| CacheOnly | 2 | Satisfaz um pedido usando o recurso localmente cacheado; não envia um pedido para um item que não esteja na cache. Quando este nível de política de cache é especificado, é lançada uma WebException exceção se o item não estiver na cache do cliente. |
| CacheIfAvailable | 3 | Satisfaz um pedido de um recurso da cache se o recurso estiver disponível; caso contrário, envia um pedido de recurso para o servidor. Se o item solicitado estiver disponível em qualquer cache entre o cliente e o servidor, o pedido pode ser satisfeito pela cache intermédia. |
| 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 satisfazer a solicitação e substituirá a cópia no cache. Se a cópia no cache for igual à cópia do servidor, a cópia em cache será usada. No protocolo de cache HTTP, isso é conseguido usando uma solicitação condicional. |
| Reload | 5 | Satisfaz um pedido usando o servidor. A resposta pode estar guardada na cache. No protocolo de cache HTTP, isto é conseguido usando a diretiva de controlo de cache no-cache e o cabeçalho no-cache |
| NoCacheNoStore | 6 | Nunca satisfaz um pedido usando recursos da cache e não armazena recursos em cache. Se o recurso estiver presente na cache local, é removido. Este nível de política indica aos caches intermédios que devem remover o recurso. No protocolo de cache HTTP, isto é conseguido usando a diretiva de controlo de cache sem cache. |
| CacheOrNextCacheOnly | 7 | Satisfaz um pedido de um recurso, seja a partir da cache do computador local ou de uma cache remota na rede local. Se o pedido não puder ser satisfeito, é lançada uma WebException exceção. No protocolo de cache HTTP, isto é conseguido usando a |
| Refresh | 8 | Satisfaz um pedido usando o servidor ou uma cache diferente da cache local. Antes que a solicitação possa ser satisfeita por um cache intermediário, esse cache deve revalidar sua entrada em cache com o servidor. No protocolo de cache HTTP, isto é conseguido usando a diretiva de controlo de cache max-age = 0 e o cabeçalho no-cache |
Exemplos
O seguinte exemplo de código define a política de cache do domínio de aplicação para Default.
// 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;
}
Observações
Esta enumeração é usada para definir o nível de cache especificado pelos HttpRequestCachePolicy objetos.
Este valor BypassCache é o comportamento padrão da cache especificado no ficheiro de configuração da máquina que vem com o .NET Framework. Nenhuma entrada é retirada das caches, adicionada às caches ou removida das 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 as 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 um pedido específico.
Uma cópia de um recurso só é adicionada à cache se o fluxo de resposta do recurso for recuperado e lido até ao final do fluxo. Assim, outro pedido para o mesmo recurso pode usar uma cópia em cache, dependendo do nível padrão da política de cache para este pedido.