Establecer el almacenamiento en caché de una página

Actualización: noviembre 2007

El almacenamiento en caché de una página o un control de usuario hace referencia a si una página puede almacenarse en caché en un dispositivo durante el ciclo de vida de respuesta de la página. Los dispositivos que pueden almacenar en caché una página incluyen el explorador que efectúa la solicitud, el servidor Web que la atiende y cualquier otro dispositivo con almacenamiento caché que se encuentre en el trayecto de la solicitud o de la respuesta, por ejemplo un servidor proxy.

Cuando un servidor Web envía una respuesta al explorador que realizó la solicitud, el servidor incluye en la respuesta un campo Cache-Control en el encabezado HTTP que define los dispositivos en los que la página puede almacenarse en caché. Dependiendo de las necesidades de su aplicación, puede definir qué dispositivos deben o no almacenar en caché las páginas ASP.NET individuales. Por ejemplo, puede ser conveniente que las opciones de almacenamiento en caché para una página de inicio de sesión de usuario sean diferentes de las de una página que muestre la selección de productos de un catálogo. En el caso de la página de inicio, por motivos de seguridad, sólo deberá almacenarse la página en la caché del servidor, mientras que la página del catálogo se podrá almacenar en la caché de cualquier dispositivo.

Para las páginas ASP.NET, puede establecer el almacenamiento en caché utilizando los valores en la enumeración HttpCacheability. La enumeración tiene los valores siguientes. Los tres primeros se asignan directamente a las opciones del encabezado HTTP Cache-Control y los tres últimos son valores especiales.

  • NoCache   Especifica que el dispositivo que realiza la solicitud debería recibir la respuesta del servidor Web cada vez que la realiza.

  • Public   Permite almacenar en caché la respuesta en clientes y cachés compartidas (servidor proxy).

  • Private   Especifica que la respuesta sólo se puede almacenar en caché en el cliente y no en cachés compartidas (servidor proxy).

  • Server   Especifica que la respuesta sólo se almacena en memoria caché en el servidor de origen.

  • ServerAndNoCache   Aplica las opciones de Server y NoCache para indicar que el contenido se almacena en el servidor, pero niega explícitamente a los demás la capacidad de almacenar la respuesta en caché.

  • ServerAndPrivate   Especifica que una respuesta se puede almacenar en caché sólo en el servidor de origen y en el cliente que realiza la solicitud; los servidores proxy no pueden almacenar la respuesta en caché.

Se puede establecer de forma declarativa el almacenamiento en caché de una página incluyendo un atributo Location en la directiva @ OutputCache y especificando uno de los valores de la enumeración OutputCacheLocation. También puede establecer mediante programación el almacenamiento en caché de una página utilizando el método SetCacheability para especificar un valor HttpCacheability para la página. El método es accesible a través de la propiedad Cache de la clase Response.

Nota:

Si utiliza la directiva @ OutputCache para establecer el almacenamiento en caché de la página, deberá declarar el atributo Duration, además del atributo VaryByControl o VaryByParam junto con el atributo Location. El atributo Duration debe tener un valor mayor que cero. Puede establecer el atributo VaryByParam en "None" si no desea utilizar la funcionalidad de VaryByParam o los parámetros VaryByControl. Para obtener más información, vea Cómo: Establecer los valores de caducidad del almacenamiento en caché de páginas ASP.NET y Almacenar en memoria caché varias versiones de una página.

Como alternativa a establecer un almacenamiento de la página en caché utilizando la directiva @ OutputCache, puede crear un perfil de memoria caché en el archivo Web.config de la aplicación y, a continuación, hacer referencia al perfil en la página. Para obtener más información, vea Configuración de la caché en ASP.NET.

Vea también

Tareas

Cómo: Establecer el almacenamiento en caché de una página ASP.NET mediante declaración

Cómo: Establecer el almacenamiento en caché de una página mediante programación

Conceptos

Almacenar en caché páginas ASP.NET

Referencia

Duration