Compartir vía


HttpRequestCacheLevel Enumeración

Definición

Especifica el comportamiento de almacenamiento en caché para los recursos obtenidos utilizando el protocolo de transferencia de hipertexto (HTTP).

public enum class HttpRequestCacheLevel
public enum HttpRequestCacheLevel
type HttpRequestCacheLevel = 
Public Enum HttpRequestCacheLevel
Herencia
HttpRequestCacheLevel

Campos

BypassCache 1

Atiende una solicitud utilizando el servidor. Ninguna entrada se obtiene de las memorias caché, ni se agrega o se quita de las memorias caché entre el cliente y servidor. Ninguna entrada se obtiene de las memorias caché, ni se agrega o se quita de las memorias caché entre el cliente y servidor. Éste es el comportamiento predeterminado de la caché especificado en el archivo de configuración del equipo que se distribuye con .NET Framework.

CacheIfAvailable 3

Atiende una solicitud de un recurso de la caché si el recurso está disponible; de lo contrario, envía una solicitud de un recurso al servidor. Si el elemento solicitado está disponible en cualquier caché entre el cliente y el servidor, la caché intermedia podría atender la solicitud.

CacheOnly 2

Atiende una solicitud mediante el recurso almacenado en la memoria caché local; no envía una solicitud de un elemento que no se encuentre en la caché. Cuando se especifica este nivel de directiva de caché, se produce una excepción WebException si el elemento no está en la caché del cliente.

CacheOrNextCacheOnly 7

Atiende una solicitud de un recurso de la caché del equipo local o de una caché remota en la red de área local. Si no se puede atender la solicitud, se produce una excepción WebException. En el protocolo de almacenamiento en caché HTTP, esto se logra utilizando la directiva de control de caché only-if-cached.

Default 0

Atiende una solicitud de un recurso utilizando la copia almacenada en caché del recurso o enviando una solicitud del recurso al servidor. La directiva de caché actual y la antigüedad del contenido de la caché determinan la acción que se va a realizar. Éste es el nivel de caché que deben utilizar la mayoría de las aplicaciones.

NoCacheNoStore 6

Nunca atiende una solicitud utilizando los recursos de la caché y no almacena los recursos en memoria caché. Si el recurso está presente en la caché local, se quita. Este nivel de directiva indica a las memorias caché intermedias que deben quitar el recurso. En el protocolo de almacenamiento en caché HTTP, esto se logra utilizando la directiva de control de caché no-cache.

Refresh 8

Atiende una solicitud utilizando el servidor o una caché distinta de la caché local. Antes de que una caché intermedia pueda atender a la solicitud, esa caché debe revalidar su entrada almacenada en caché con el servidor. En el protocolo de almacenamiento en caché HTTP, esto se logra utilizando la directiva de control de caché max-age = 0 y el encabezado Pragma no-cache.

Reload 5

Atiende una solicitud utilizando el servidor. La respuesta podría guardarse en la caché. En el protocolo de almacenamiento en caché HTTP, esto se logra utilizando la directiva de control de caché no-cache y el encabezado Pragma no-cache.

Revalidate 4

Compara la copia del recurso en la caché con la copia en el servidor. Si la copia en el servidor es más reciente, se usa para atender a la solicitud y reemplaza a la copia en la caché. Si la copia en la caché es la misma que la del servidor, se usa la copia almacenada en caché. En el protocolo de almacenamiento en caché HTTP, esto se logra mediante una solicitud condicional.

Ejemplos

En el ejemplo de código siguiente se establece la directiva de almacenamiento en caché del dominio de aplicación en 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;
}

Comentarios

Esta enumeración se usa para establecer el nivel de caché especificado por HttpRequestCachePolicy los objetos .

Este BypassCache valor es el comportamiento de caché predeterminado especificado en el archivo de configuración de la máquina que se incluye con .NET Framework. Ninguna entrada se obtiene de las memorias caché, ni se agrega o se quita de las memorias caché entre el cliente y servidor.

La HttpWebRequest.DefaultCachePolicy propiedad se usa para obtener o establecer la directiva de caché predeterminada para HttpWebRequest las instancias. La WebRequest.DefaultCachePolicy propiedad se usa para obtener o establecer la directiva de caché predeterminada para una WebRequest instancia de . La CachePolicy propiedad se usa para obtener o establecer la directiva de caché para una solicitud específica.

Una copia de un recurso solo se agrega a la memoria caché si el flujo de respuesta del recurso se recupera y lee al final de la secuencia. Por lo tanto, otra solicitud para el mismo recurso podría usar una copia almacenada en caché, según el nivel de directiva de caché predeterminado para esta solicitud.

Se aplica a

Consulte también