¿Existe un estándar para qué acciones F5y Ctrl + F5disparadores en los navegadores web?
Una vez experimenté en IE6 y Firefox 2.x. La F5 actualización activaría una solicitud HTTP enviada al servidor con un If-Modified-Since
encabezado, mientras Ctrl + F5que no tendría dicho encabezado. Según tengo entendido, F5 intentaré utilizar el contenido en caché tanto como sea posible, mientras que Ctrl + F5 está destinado a abandonar todo el contenido en caché y solo recuperar todo el contenido de los servidores nuevamente.
Pero hoy, noté que en algunos de los últimos navegadores (Chrome, IE8) ya no funciona de esta manera. Ambos F5y Ctrl + F5enviar el If-Modified-Since
encabezado.
Entonces, ¿cómo se supone que esto funciona, o (si no hay un estándar) cómo difieren los principales navegadores en la forma en que implementan estas funciones de actualización?
Respuestas:
Generalmente hablando:
F5puede darle la misma página incluso si se cambia el contenido, porque puede cargar la página desde la memoria caché. Pero Ctrl: F5fuerza una actualización de caché y garantizará que si se cambia el contenido, obtendrá el nuevo contenido.
fuente
Depende del navegador, pero se comportan de manera similar.
He probado FF, IE7, Opera y Chrome.
F5generalmente actualiza la página solo si se modifica. El navegador generalmente intenta usar todos los tipos de caché tanto como sea posible y agrega un encabezado "If-modified-since" a la solicitud. Opera difiere enviando un "Cache-Control: no-cache".
CTRL- F5se utiliza para forzar una actualización, sin tener en cuenta ningún caché. IE7 agrega un "Cache-Control: no-cache", al igual que FF, que también agrega "Pragma: no-cache". Chrome hace un "If-modified-since" normal y Opera ignora la clave.
Si no recuerdo mal, fue Netscape, que fue el primer navegador en agregar soporte para el control de caché al agregar "Pragma: No-cache" cuando presionó CTRL- F5.
Editar: tabla actualizada
La tabla a continuación se actualiza con información sobre lo que sucederá cuando se haga clic en el botón de actualización del navegador (después de una solicitud de Joel Coehoorn ) y el encabezado "control de caché" max-age = 0 ".
Tabla actualizada, 27 de septiembre de 2010
Versiones probadas:
Notas:
La versión 3.0.6 envía I y C, pero 3.1.6 abre la página en una nueva pestaña, haciendo una solicitud normal con solo "I".
La versión 10.62 no hace nada. 9.61 podría hacer C a menos que fuera un error tipográfico en mi tabla anterior.
Nota sobre Chrome 6.0.472 : si realiza una recarga forzada (como CTRL- F5) se comporta como si la URL estuviera marcada internamente para realizar siempre una recarga forzada. La bandera se borra si va a la barra de direcciones y presiona enter.
fuente
He implementado una página compatible con varios navegadores para probar el comportamiento de actualización del navegador (aquí está el código fuente ) y obtener resultados similares a @some, pero para los navegadores modernos:
fuente
Al menos en Firefox (v3.5), el caché parece estar deshabilitado en lugar de simplemente borrado. Si hay varias instancias de la misma imagen en una página, se transferirá varias veces. Ese es también el caso de las
img
etiquetas que se agregan posteriormente a través de Ajax / JavaScript.Entonces, en caso de que se pregunte por qué el navegador sigue descargando el mismo pequeño ícono unas cientos de veces en su sitio de actualización automática de Ajax, es porque inicialmente cargó la página usando CTRL- F5.
fuente
IE7 / 8/9 parece comportarse de manera diferente dependiendo de si la página tiene foco o no.
Si hace clic en la página y luego CTRL+ F5"Cache-Control: no-cache" se incluye en los encabezados de solicitud. Si hace clic en la barra de Ubicación / Dirección, presione CTRL+ F5no lo está.
fuente
Cuando el usuario presiona, F5aunque la nueva solicitud va al servidor web y obtiene una respuesta para la solicitud también. Pero cuando se analiza el encabezado de respuesta, verifica la información requerida en la memoria caché del navegador. Si la información requerida en la memoria caché no ha expirado, esa información se restaura desde la memoria caché misma.
Cuando el usuario hace clic en CTRL- F5incluso entonces, la nueva solicitud va al servidor web y obtiene una respuesta. Pero esta vez, cuando se analiza el encabezado de respuesta, no verifica la información requerida en la memoria caché y solo trae toda la información actualizada del servidor.
fuente