Redirecciones 301 de 'almacenamiento en caché' de Firefox 5

92

¿Hay alguna forma de desactivar esta "función"?

Por ejemplo, si se realiza una solicitud a la http://localhost/foo.htmlque he especificado en '301' a la dirección raíz, todas las solicitudes posteriores para foo.htmlomitir el servidor web por completo y ffox 5 verificarán su caché, leerán que esta URL fue '301' previamente y redirigir sin siquiera comprobar si hay cambios.

Si dejé foo.htmlde 301'ing, tengo que borrar la caché de Firefox para "arreglar" que esto no suceda.

Chrome, IE y la versión anterior de Firefox no hacen esto.

maxp
fuente
Incluso eliminar el caché no resuelve este error para mí (Firefox 17.0.1, Linux).
Konrad Höffner
2
@kirdie En el cuadro de diálogo "borrar historial reciente", asegúrese de establecer el intervalo de tiempo en "todo" y marque la casilla de verificación "caché". Si el intervalo de tiempo seleccionado es más reciente que sus visitas a la URL redirigida, la entrada de la caché no se borrará.
Kelvin
13
@kirdie y todos los que tienen el mismo problema: mira el historial con Ctrl + H. Luego haz clic derecho en el sitio y elige "eliminar todo el historial de este sitio" (o algo similar). Eso lo hizo por mí.
Lars Nyström
4
@ LarsNyström: Desarrollé una aplicación web y encontré esto: tu sugerencia funcionó perfectamente para mí. Fue "Olvídate de este sitio" en FF20.0
cincodenada
1
¿No se llama 301 "movido permanentemente "? Si tengo un servidor que solo sirve https y la gente va a mi nombre de dominio usando http (lo suficientemente malo como es, porque revelarán el uri de la solicitud), me gustaría que el navegador recordara eso de forma permanente y no verifique http cada vez.

Respuestas:

45

301 es solo un código de respuesta normal que se puede almacenar en caché. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2 dice:

This response is cacheable unless indicated otherwise. 

Entonces, si no desea que se almacene en caché, su servidor debe indicar lo contrario a través de los encabezados normales que se usan para controlar el comportamiento de la caché.

También puede borrar el caché manualmente .

Boris Zbarsky
fuente
7
Creo que sería más sencillo utilizar un 302 en su lugar, que no se puede almacenar en caché de forma predeterminada.
Frank Farmer
22
@Boris Zbarsky: ¿No es la pregunta más "Cómo borro la caché" en lugar de "Cómo evito que se produzca la escritura en la caché en primer lugar"?
Bobby Jack
4
La pregunta me pareció "¿Cómo puedo evitar tener que borrar el caché?"
Boris Zbarsky
17
Apesta porque no puedes "cambiar-recargar" una redirección incluso cuando sabes que está mal. Todos los demás recursos en caché defectuosos se pueden recargar por separado, pero no estos malditos redireccionamientos.
Sam Watkins
1
Intenté usar redireccionamientos 302 de IIS, pero las versiones recientes de Firefox (y Chrome y Edge e IE) también almacenan en caché esos, a juzgar por su comportamiento. Descubrí que abrir y eliminar una ventana privada es la mejor manera de probar sitios web y evitar envenenar la memoria caché de su navegador.
dsmtoday
117

En Firefox, si tiene el complemento de barra de herramientas de "desarrollador web". Puede hacer clic en desactivar -> desactivar caché -> buscar una nueva versión de la página cada vez. Luego vuelva a cargar la URL y actualizará su caché. Por lo tanto, no es necesario borrar todo el caché.

Del comentario de cptstubing06, lo siguiente puede ayudar a borrar la caché:

  1. Escriba Ctrl+lpara colocar el cursor en la barra de ubicación.
  2. Escriba about:configpara abrir los ajustes de configuración .
  3. Confirme las advertencias.
  4. Escriba browser.cacheseguido de Enterpara filtrar la configuración.
  5. Haga doble clic browser.cache.check_doc_frequency.
  6. Cambie el valor de 3a 1.
  7. Haga clic en OK.
  8. Vuelve a visitar la página 301 obsesivamente almacenada en caché.
  9. Restablezca la frecuencia de nuevo a 3 cuando termine.

Firefox ahora debería redirigir a la nueva página 301, sin obtener más la página redirigida del caché.

Steve Parroquia
fuente
4
Esta es una gran solución para mí: quiero un 301 en caché el 99% del tiempo, pero una vez en azul, es posible que deba cambiar la ubicación de la redirección y no quiero borrar TODO mi caché. Solo para aclarar, Firefox viene con su propio Web Developermenú en herramientas, que no es el complemento. El complemento también se llama Web Developer, pero aparece en el menú Herramientas como Web Developer Extensiony se puede descargar aquí: addons.mozilla.org/en-us/firefox/addon/web-developer .
cptstubing06
5
Tenga en cuenta: si desea que Firefox actualice su caché para su URL redirigida, puede usar Web Developer Extensionpara controlar el comportamiento de cambio de Firefox temporalmente para buscar siempre una nueva versión y luego volver a configurarla a su configuración normal. Esto se encuentra en Web Develoepr Extension -> Deshabilitar -> Deshabilitar caché -> Buscar una versión más reciente de la página -> Buscar una versión más reciente de la página cada vez.
cptstubing06
1
Cualquiera que sea el método que elija, el procedimiento es cambiar esta configuración para buscar siempre una nueva versión y luego cargar su URL que tiene la redirección en caché. Luego llegará al servidor y obtendrá cualquier respuesta nueva que exista para esa URL y actualizará su caché con la nueva respuesta. Luego, puede volver a establecer la frecuencia de verificación de la caché en su valor original (el valor predeterminado es "Cuando la página está desactualizada", pero voy con "Una vez por sesión" para que este escenario exacto se maneje sin mi participación ahora).
cptstubing06
@ cptstubing06 ¡gracias por ese consejo! Ojalá lo hubiera enviado como una solución para poder votarlo como la mejor manera de manejar esto cuando no desea borrar todo su caché.
Mercurybullet
Para su información, es posible que deba desactivar DNS over HTTPSpara que esto funcione como se espera.
user2741287
25

Acabo de experimentar este problema y para mí fueron dos cuestiones.

Este nombre de dominio en particular se enruta a través de Cloudflare, por lo que tuve que configurarlo en modo de desarrollo. Creo que Cloudflare estaba almacenando en caché la redirección 301 para no tener que enviar la solicitud al servidor. Es posible que este paso no se aplique en su caso, obviamente.

Luego, simplemente borré mi caché de Firefox (versión 11) yendo a Herramientas -> Opciones, haciendo clic en el botón Avanzado en la esquina superior derecha, seleccionando la pestaña Red y luego haciendo clic en Limpiar ahora en la sección Contenido web en caché. Tenga en cuenta que mi caché ya estaba configurado en 0, pero todavía necesitaba hacer clic en el botón Limpiar ahora para que la redirección deje de almacenarse en caché.

Me interesaría saber si alguien más puede verificar esto.

Charlie Gorichanaz
fuente
2
+1. Su nota sobre la limpieza de la caché de Firefox me solucionó esto (como usuario / cliente, no como propietario del sitio web) para una URL en particular donde Firefox no estaba recogiendo un 301 después de haber sido actualizado. Gracias.
Jon Schneider
1
Puede eliminar solo la redirección en caché con este complemento de Firefox: addons.mozilla.org/en-us/firefox/addon/cacheviewer-continued
Steve
9

Encontré una solución para esto que funciona en Firefox 26, después de tener un redireccionamiento obsoleto almacenado en caché durante más de un mes y un reinicio.

  1. En el menú Historial, elija Mostrar todo el historial.
  2. En la búsqueda, escriba el dominio con el problema de redireccionamiento en caché para que aparezca una lista de resultados.
  3. Haz clic derecho en uno de ellos y elige "Olvídate de este sitio".

Todas las páginas, imágenes y redirecciones almacenadas en caché solo para ese sitio se eliminarán de la caché. Esto le permite borrar el redireccionamiento de su sitio web de desarrollo sin borrar el resto de su caché.

Como nota al margen, creo que Firefox solo debería almacenar en caché las redirecciones durante unos días como máximo. Almacenarlos en caché durante más de un mes puede convertir un simple error en un gran problema.

Malvino
fuente
2
Esto funciona, pero tenga en cuenta que "Olvídese de este sitio" también olvidará el historial de URL (para completar automáticamente) e incluso las contraseñas guardadas para todo el dominio. Puede que no sea lo que quieres.
tanius
5

Una solución rápida es utilizar una ventana de navegador privada.

Costa
fuente
Esa es mi solución rápida y, a veces, simplemente agregar un signo de interrogación al final de la URL puede funcionar.
johnsnails
5

Las herramientas de desarrollo integradas en las versiones recientes de Firefox tienen una solución para esto. Primero, desactive el almacenamiento en caché cuando el panel de desarrollo esté abierto:

  • En cualquier página, presione F12para abrir las herramientas de desarrollo
  • En el extremo derecho, haz clic en el ícono de ajustes "Opciones de la caja de herramientas".
  • Debajo Advanced Settingsmarque la opciónDisable Cache (when toolbox is open)

Ahora, en cualquier momento que desee forzar la actualización de una página almacenada en caché, cargue / actualice la página con la caja de herramientas de desarrollo F12 abierta. Firefox omitirá el caché y obtendrá datos nuevos del servidor.

Prefiero este método porque no cambia el comportamiento del navegador para la navegación "normal" sin depuración, y no corre el riesgo de olvidar restaurar una configuración global a su valor original.

Verificado en Firefox 39

Ryan Bemrose
fuente
1
No ayuda a los redireccionamientos en caché.
SuperDuck
3

Un 301 indica que se movió permanentemente. Por lo tanto, veo que es razonable almacenar en caché la respuesta.

¿Ha intentado configurar los encabezados cache-controly expires?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9

Chris Diver
fuente
3
A veces estamos desarrollando o migrando servidores o rastreando una falla, y realmente necesitamos apagar estas cosas, ya que realmente pueden interferir.
Jason
2

En la versión 38.0 de Firefox

Menu -> Edit -> Preferences -> Advanced -> Network -> Clear Now

Trabajó para mi.

Soorajlal KG
fuente
1

301 significa Movido permanentemente y se puede almacenar en caché, así que creo que ese es el comportamiento "correcto" para el navegador. Debe usar 303 Ver otros .

jsz
fuente
5
IE y Chrome caché 303 y la especificación HTTP se está cambiando para permitir el almacenamiento en caché. Vea los borradores en tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-15 . Entonces, la única forma segura de evitar el redireccionamiento en caché es establecer encabezados explícitos de control de caché.
Boris Zbarsky