2010-12-23 11 views
5

¿Alguien puede explicar esto?¿Qué hace el encabezado ("Caduca: 0")?

+0

Probablemente esté destinado a decirle al navegador/cliente las reglas para el almacenamiento en caché de la página. Pero está basado en HTTP 1.0. Hay algunos encabezados de control de caché más robustos introducidos en HTTP 1.1 que también deben establecerse. – Asaph

Respuesta

6

Generalmente se utiliza para evitar el almacenamiento en caché. Sin embargo, este documento probablemente le proporcionará una mejor explicación:

http://download.oracle.com/docs/cd/E13158_01/alui/wci/docs103/devguide/tsk_pagelets_settingcaching_httpexpires.html

Para citar:

No utilice nunca caduca = 0 para evitar almacenamiento en caché. El encabezado Expires se envía por al servidor remoto y pasa a través del al explorador por Portal Server. A menos que se sincronice el tiempo en las tres máquinas , un encabezado Expira = 0 puede devolver erróneamente el contenido almacenado en caché. Para resolver este problema, establezca el encabezado Expira en una fecha fija que es definitivamente en el pasado.

+0

Me temo que eso no es correcto. Consulte http://stackoverflow.com/questions/11357430/http-expires-header-values-0-and-1 para obtener una mejor explicación. – user123444555621

0

Establece el encabezado de caducidad de caché. Esto le dice al navegador por cuánto tiempo se les permite guardarlo en la memoria caché antes de que deban recuperarlo.

Creo que 0 significa que nunca caduca, lo que puede causar todo tipo de problemas. Creo que la unidad es segundos. Por otro lado, podría significar que no se puede almacenar en caché.

5

El modo en que funciona el almacenamiento en caché (entre otras cosas) es que envía un encabezado al navegador indicándole cuándo caducará el contenido de la página. Esto significa que si envía un encabezado como:

header("Expires Sunday June 10th 2011"); // not correct timestamp 

El contenido no 'caducará' hasta esa fecha. El navegador puede utilizar técnicas de almacenamiento en caché para mostrar la página localmente desde su navegador en lugar de tener que volver a descargar todo el contenido.

Cuando establece la caducidad en 0, garantiza que la próxima vez que el navegador cargue la página, descargará el contenido, lo que le permitirá acceder al segundo dato. Sin embargo, como puede ver en otras respuestas, no debe enviar 0 para evitar el almacenamiento en caché, sino que envíe una fecha que esté en el pasado.

-1

algunos navegadores siempre vuelven a cargar hojas de estilo, javascript y otros archivos seldomnly cambiantes, lo que provoca retrasos desagradables cuando se carga una página web (Safari en MacOS es un ejemplo)

para decirle al navegador para mantener los archivos en la memoria caché durante por lo al menos un día, puede usar Esto tiene el agradable efecto secundario de decirle a otro navegador que nunca actualice las páginas que las actualice al menos una vez al día.

2

"Caduca: 0" significa que un caché siempre tratará esta entrada como obsoleta (es decir, tendrá que volver a validarla antes de devolverla a un cliente).

partir de la definición de la Expira cabecera en el HTTP/1.1 RFC (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21): "1,1 clientes y cachés HTTP/debe tratar a otros formatos de fecha no válidas, incluyendo especialmente el valor '0', como en el pasado (es decir, , "ya expiró") ".

Cuestiones relacionadas