2012-08-31 15 views
11

Debido a una mala configuración de nuestro servidor web, el dominio principal envió un redireccionamiento 302 a una nueva ubicación. Solucionamos ese problema. Al vaciar el caché del navegador, todo funciona bien ahora.¿Cuánto dura un 302 redireccionamiento guardado en el navegador?

Para el cliente "normal" que no vacía su caché: ¿Cuánto tiempo se mantiene la redirección 302 en el navegador?

Respuesta

14

No se debe almacenar en caché a menos que también haya un encabezado Cache-Control o Expires devuelto por el servidor web. De acuerdo con RFC 2616, section 10.3.3 302 Found

El recurso solicitado reside temporalmente bajo un URI diferente. Como la redirección podría verse alterada ocasionalmente, el cliente DEBERÍA continuar utilizando el URI de solicitud para futuras solicitudes. Esta respuesta solo se puede almacenar en caché si está indicada por un campo de encabezado Cache-Control o Expires.

+2

Gracias. Parece que mi navegador de prueba predeterminado (Chrome) me acaba de engañar sobre esto: http://code.google.com/p/chromium/issues/detail?id=103458 (Cachés de Chrome, otros no) –

+3

@OleAlbers Estaba a punto de edito mi respuesta con una nota (antes de que mi internet muriera) que aunque el RFC dice que los clientes ** DEBEN ** seguir usando el URI original, eso no significa que todos los navegadores lo harán, tendrá que tomarse como un caso por caso. –

0

Depende de la configuración del caché del navegador del cliente individual: IE tiene la opción de "NUNCA" buscar nuevas páginas, tiene el mismo efecto en las redirecciones.
Y la configuración "Automática" de AFAIR IE (¿predeterminada?) No es mucho mejor.

9

La norma a la que hace referencia Jon Lin utiliza "DEBERÍA", que es not as strong as "MUST" en RFC lingo. Esto no es solo una distorsión teórica; Cloudflare, por ejemplo, does cache redirects:

Si no se proporcionan cabeceras de caché (sin Cache-Control o Expira) y la url es cacheable (.jpg, Css, Js etc.) entonces CloudFlare almacena en caché tanto 301 y 302s. Caché 301 durante un par de horas y 302 para un período de tiempo más corto de (~ 20 minutos).

por lo que debe o bien asegurarse de que puede manejar o utilizar los encabezados explícitos (por ejemplo Cache-Control: private, no-cache) para dirigir los navegadores y productos intermedios de almacenamiento en caché contra él.

+0

Sí, este fue el problema para mí, sin especificar que 'Cache-Control' estaba causando la redirección en caché. Sin embargo, puede echar un vistazo a este hilo para obtener una visión más completa de la especificación de encabezados sin caché: https://stackoverflow.com/questions/49547/how-to-control-web-page-caching-across-all-browsers –

Cuestiones relacionadas