Compartir por


HttpRequestCacheLevel Enumeración

Definición

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

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

Campos

Nombre Valor Description
Default 0

Satisface una solicitud de un recurso mediante la copia almacenada en caché del recurso o enviando una solicitud para el recurso al servidor. La directiva de caché actual determina la acción realizada y la antigüedad del contenido en la memoria caché. Este es el nivel de caché que la mayoría de las aplicaciones deben usar.

BypassCache 1

Satisface una solicitud mediante el servidor. No se toman entradas de las memorias caché, se agregan a las memorias caché ni se quitan de las memorias caché entre el cliente y el servidor. No se toman entradas de las memorias caché, se agregan a las memorias caché ni se quitan de las memorias caché entre el cliente y el servidor. Este es el comportamiento de caché predeterminado especificado en el archivo de configuración de la máquina que se incluye con .NET Framework.

CacheOnly 2

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

CacheIfAvailable 3

Satisface una solicitud de un recurso de la memoria 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 solicitud podría satisfacerse mediante la caché intermedia.

Revalidate 4

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

Reload 5

Satisface una solicitud mediante el servidor. Es posible que la respuesta se guarde en la memoria caché. En el protocolo de almacenamiento en caché HTTP, esto se logra mediante la directiva de control de caché sin caché y el encabezado sin caché Pragma .

NoCacheNoStore 6

Nunca satisface una solicitud mediante el uso de recursos de la memoria caché y no almacena en caché los recursos. Si el recurso está presente en la memoria 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 mediante la directiva de control de caché sin caché.

CacheOrNextCacheOnly 7

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

Refresh 8

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

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.
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. No se toman entradas de las memorias caché, se agregan a las memorias caché ni se quitan de las memorias caché entre el cliente y el servidor.

La HttpWebRequest.DefaultCachePolicy propiedad se usa para obtener o establecer la directiva de caché predeterminada para HttpWebRequest 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 se recupera y lee el flujo de respuesta del recurso al final de la secuencia. Por lo tanto, otra solicitud para el mismo recurso podría usar una copia almacenada en caché, en función del nivel de directiva de caché predeterminado para esta solicitud.

Se aplica a

Consulte también