Código de estado 304 - Qué es y cómo solucionarlo
Este tutorial abarca los siguientes temas:
El código de estado 304 “Not Modified” es uno de estos códigos de estado HTTP que probablemente hayas oído hablar mientras navegas por Internet. Algunos códigos HTTP son más populares y encontrados a menudo por los visitantes como el 404 “Not Found” o Error 504 “Gateway Timeout”. Al mismo tiempo, otras están ocultas y funcionan en el fondo de tu navegador.
El código de estado 304 es uno de estos. Cumple su propósito en la comunicación entre servidores web y clientes web. Oculto para el usuario final, proporciona instrucciones sobre cómo cargar recursos de la página web.
Dicho esto, los códigos HTTP a menudo se confunden con errores independientemente de su naturaleza y no se manejan correctamente, y el código de estado HTTP 304 no es una excepción.
Este artículo aclarará las cosas y proporcionará más información sobre qué es el estado 304 “No modificado” y cómo corregir los errores causados por él.
Por lo tanto, el código de estado 304 reduce el uso de ancho de banda al indicar a los navegadores cuándo cargar contenido cacheado y cuándo descargar nuevos recursos.
Cómo funciona el código de estado 304
El siguiente ejemplo describe una interacción típica entre un servidor web y un navegador que implica un código de respuesta 304:
- Al abrir un nuevo sitio web: Cuando visitas un sitio web por primera vez, el navegador envía una solicitud HTTP GET al servidor para el recurso deseado.
- El servidor devuelve el encabezado ETag o Last-Modified: El servidor procesa la solicitud HTTP y responde con el recurso junto con los encabezados de respuesta HTTP que incluyen ” ETag ” y/o ” Last-Modified “. Estos encabezados representan el estado actual o la versión del recurso.
- Tu navegador almacena estos encabezados y descarga el contenido: El navegador almacena los encabezados ” ETag ” y/o “Last-Modified ” junto con el recurso en su caché. El contenido ahora está almacenado en caché en tu dispositivo.
- La próxima vez que visites el sitio web: Cuando vuelves a visitarlo, o el navegador necesita revalidar el contenido cacheado, envía una solicitud GET condicional. Esta solicitud incluye el encabezado If-None-Match con el valor de ETag previamente almacenado y / o el encabezado If-Modified-Since con la fecha de Last-Modified previamente almacenada.
- El servidor evalúa los encabezados: El servidor recibe la solicitud condicional y comprueba el estado actual del recurso contra la fecha “ETag” y / o “Last-Modified” proporcionada por el navegador.
- El servidor responde de dos maneras diferentes según la evaluación:
- Si la fecha actual de ” ETag” o “Last-Modified” coincide con los valores proporcionados por el navegador (lo que significa que el contenido no ha cambiado), el servidor responde con un código de estado “304 Not Modified”. El navegador sigue usando el contenido cacheado.
- Si la fecha actual de ” ETag” o “Last-Modified” no coincide con los valores proporcionados (el contenido ha cambiado), el servidor responde con un código de estado `200 OK`. Luego, envía la nueva versión del recurso. El navegador actualiza su caché para guardar las páginas web en su última versión, ETag, y / o encabezados HTTP `Last-Modified`.
¿Cuál es la diferencia entre los códigos de estado HTTP 304 y 200?
Los códigos de estado 200 OK y 304 Not Modified son dos posibles resultados de las mismas solicitudes de cliente enviadas a un servidor web. Si bien ambos códigos representan una interacción exitosa, proporcionan diferentes instrucciones sobre el manejo del recurso solicitado.
- El código de respuesta 200 OK contiene el cuerpo del recurso solicitado (documento HTML, archivo JSON, imagen, etc.)
- La respuesta 304 Not Modified no tiene cuerpo y solo contiene encabezados. Estos encabezados informan a los navegadores que tienen una versión actualizada del recurso que solicitaron, y que pueden usar su versión almacenada en caché.
- El código de respuesta 200 ignora los recursos cacheados del navegador y proporciona la última versión.
Cómo arreglar el código de estado HTTP 304
Un recurso cacheado desactualizado o una configuración incorrecta del navegador pueden evitar que se carguen los datos de navegación cacheados. En este caso, puedes toparte con errores mientras visitas páginas web.
Por lo tanto, deberías centrarte en resolver este tipo de problemas en lugar de intentar arreglar cada código HTTP 304 Not Modified.
A continuación, encontrarás las soluciones más comunes y efectivas.
Borrar la caché de tu navegador
A menudo, los datos del navegador desactualizados o dañados pueden afectar negativamente la forma en que tu navegador se comunica con un servidor web. Como resultado, puede escupir todo tipo de errores.
En muchos casos, limpiar la caché de tu navegador resuelve estos errores. Sigue los pasos a continuación para eliminar la caché en Chrome.
- Abre el menú de 3 puntos y selecciona Borrar datos de navegación.
- Para eliminar imágenes y archivos en caché, marca la casilla de Archivos e imágenes en caché. Opcionalmente, también puedes eliminar las cookies y el historial de navegación.
- Confirma tu elección presionando Borrar datos.
- Vuelve a cargar la página solicitada para ver si el error está resuelto.
Limpiar la caché de DNS
Tu ordenador también almacena la caché de DNS, que consiste en la configuración de DNS de los sitios web visitados anteriormente. Una caché de DNS desactualizada puede causar todo tipo de problemas al visitar páginas web.
Limpia la caché de DNS para deshacerte de información de DNS corrupta o caducada. Para hacerlo, tendrás que usar el Terminal en Mac o Linux y Símbolo del sistema en Windows.
Tomemos macOS, por ejemplo. Para limpiar la caché de DNS, escribe el siguiente comando en Terminal.
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Después de ejecutar el comando, se te pedirá que introduzcas tu contraseña de administrador (sudo).
Sigue las guías a continuación para obtener instrucciones paso a paso sobre cómo limpiar la caché de DNS en diferentes sistemas operativos (OS).
- Cómo limpiar la caché DNS en Windows
- Cómo limpiar la caché DNS en Mac
- Cómo limpiar la caché DNS en Linux
Desactivar extensiones de navegador
Las extensiones de navegador son geniales para ampliar la funcionalidad básica de los principales navegadores. Pero en raras ocasiones, pueden evitar que el recurso cacheado se cargue correctamente.
Por lo tanto, puedes desactivar las extensiones de tu navegador para comprobar si causan alguna molestia.
Sigue los pasos a continuación para desactivar las extensiones de Chrome. El proceso en otros navegadores es similar.
- Abre el menú de kebab > Extensiones > Gestionar extensiones.
- Haz clic en el control deslizante de ON/OFF para desactivar una extensión. Alternativamente, puedes eliminar las extensiones no utilizadas o desactualizadas con el botón Quitar.
- A continuación, vuelve a visitar la página web que produjo errores. Si el error persiste, repite el proceso hasta que la página cargue correctamente.
Comprueba si hay redirecciones en el archivo .htaccess
Las instrucciones de redirección incorrectas pueden evitar que tu navegador procese correctamente un código de respuesta HTTP 304 de un sitio web. Por lo tanto, si eres el propietario del sitio web, deberías inspeccionar el archivo de configuración de tu servidor que contiene directivas de redirección.
Este archivo es .htaccess en Apache, la aplicación de servidor web más popular. Aquí es cómo inspeccionarlo.
- Accede a los archivos de tu sitio web a través de FTP o Gestor archivos. Si eres usuario de SiteGround, ve a Site Tools > Sitio Web > Gestor аrchivos.
- Abre el directorio raíz de tu sitio web. Por lo general, es tudominio.com/public_html.
- Encuentra el archivo .htaccess y edítalo.
- Busca cualquier regla de redirección. Normalmente se colocan en la parte superior del archivo .htaccess. Elimínalos para probar si te impiden cargar el sitio web.
Cambiar los servidores DNS
Los ordenadores obtienen las direcciones IP de los sitios web de los servidores DNS. Si la comunicación con el servidor DNS está interrumpida, es posible que tu ordenador no maneje correctamente un código de estado 304. Podría ser causado por una dirección de servidor DNS incorrecta o un problema temporal en tu servidor DNS designado.
Cambia los servidores DNS por defecto con otros servidores DNS públicos. Por ejemplo, puedes cambiar a los servidores DNS de Google si tu ISP usa servidores personalizados.
Servidores DNS de Google
8.8.8.8
8.8.4.4
La forma exacta de cambiar los servidores DNS depende de tu sistema operativo (OS). A continuación, encontrarás los pasos a seguir para Windows y Mac.
Mac
- Abre Ajustes del Sistema > Red.
- Selecciona tu red activa y haz clic en Detalles.
- Abre la pestaña DNS.
- Haz clic en el signo +.
- Escribe la nueva dirección del servidor DNS en el campo resaltado.
- Presiona Aceptar.
- Vuelve a cargar la página problemática para ver si el error ha desaparecido.
Windows
- Abre el menú Windows.
- Escribe “panel de control” en la barra de búsqueda.
- Haz clic en el icono Panel de control que aparece en primer lugar.
- Selecciona Redes e Internet > Centro de redes y recursos compartidos.
- Haz clic en tu red activa.
- Aparecerá una ventana emergente. Haz clic en el botón Propiedades.
- Selecciona el elemento Internet Protocol Version 4 (TCP/IPv4) y selecciona Propiedades.
- Elige la opción Usar las siguientes direcciones de servidor DNS.
- Escribe la dirección del servidor DNS primario en el campo Servidor DNS preferido.
- Introduce la dirección del servidor DNS secundario en el campo Servidor DNS alternativo.
- Confirma la configuración haciendo clic en Aceptar.
¿Es incorrecto el código de estado HTTP 304 “Not Modified”?
No, el código de estado HTTP 304 “No Modificado” no es un código incorrecto. No señala ningún problema con tu navegador o el servidor web de un sitio. De hecho, no representa ningún problema y no es un código de error.
Por el contrario, su propósito es mejorar la experiencia del usuario para los visitantes del sitio web. En lugar de descargar el contenido cada vez, los navegadores web pueden usar sus datos almacenados en caché para renderizar las páginas web más rápido. Por lo tanto, el código de estado 304 puede ahorrar uso de ancho de banda, tiempo y recursos del servidor.
Dicho esto, muchos tutoriales en línea tratan el estado 304 como uno de los códigos de error y se centran en arreglarlo como si el objetivo fuera deshacerse de él. Eso no es correcto, y no deberías intentar eliminar el código de estado 304. De hecho, es probable que no lo veas en tu pantalla.
Sin embargo, diferentes problemas relacionados con la caché y configuraciones incorrectas del navegador / dispositivo, indirectamente relacionados con el código de estado HTTP 304, pueden dificultar tu conexión a sitios web específicos.
En resumen
El código de estado HTTP 304 es una parte integral del mecanismo de caché de la web que generalmente mejora la velocidad de navegación y la eficiencia. Si bien no es inherentemente problemático, las configuraciones incorrectas pueden llevar a problemas con el contenido que no se actualiza correctamente.
Siguiendo los métodos de solución de problemas descritos anteriormente, puedes resolver la mayoría de los problemas relacionados con el código de estado 304 y asegurarte de ver el contenido web más actualizado.