El código de estado HTTP 304 no modificado indica un problema de comunicación entre el navegador de un usuario y el servidor de un sitio web. Si tú o tus usuarios se encuentran con este código de estado en vuestro sitio, puede bloquear el acceso a tu contenido por completo.
Dado que puede estar en el lado del servidor o del cliente, averiguar el origen del problema puede llevar un poco de trabajo. Afortunadamente, hay varias técnicas infalibles para solucionarlo.
En este post, discutiremos los códigos de estado HTTP y explicaremos qué significa el código de estado HTTP 304. Luego te guiaremos a través de seis métodos que tú (o tus visitantes) pueden usar para arreglarlo.
¡Empecemos!
Una introducción a los códigos de estado HTTP
Para entender HTTP 304, es útil entender primero los códigos de estado. En pocas palabras, cada vez que haces una petición a tu navegador – como al acceder a un sitio web en particular – se envía un código de estado HTTP entre tu navegador y el servidor para intercambiar información.
Hay más de 40 códigos de estado diferentes que pueden estar involucrados en esa comunicación. Sin embargo, sólo hay un puñado con los que te encontrarás directamente. Cuando te encuentras con un código de estado, normalmente significa que algo ha ido mal.
Los códigos de estado HTTP se encuentran en una de las cinco categorías, numeradas entre los 100 y los 500. Cada serie indica un tipo diferente de problema. Por ejemplo, los códigos de error que caen en la categoría 400, como el error «404 Not Found» y el error 401, suelen significar que hubo un problema con la solicitud y que el sitio web o la página en cuestión era inaccesible.
Por otro lado, los códigos 300, como el código de estado HTTP 304 en el que nos centraremos en este post – son códigos de redireccionamiento. Dejan claro que la información solicitada fue sustituida temporal o permanentemente por otro recurso.
Si te encuentras con uno de estos códigos de estado, significa que hay que tomar medidas.
¿Qué es el código de estado HTTP 304?
HTTP 304, también conocido a veces como «304 No Modificado», es un código que comunica a tu navegador que: «El recurso solicitado no ha sido modificado desde la última vez que se accedió a él».
El Grupo de Trabajo de Ingeniería de Internet (IETF) define el 304 Not Modified como:
El código de estado 304 (Not modified) indica que se ha recibido una solicitud GET o HEAD condicional y que habría dado lugar a una respuesta 200 (OK) si no fuera porque la condición se evaluó como falsa. En otras palabras, no hay necesidad de que el servidor transfiera una representación del recurso de destino porque la solicitud indica que el cliente, que hizo la petición condicional, ya tiene una representación válida; por tanto, el servidor está redirigiendo al cliente para que haga uso de esa representación almacenada como si fuera la carga útil de una respuesta 200 (OK).
Esencialmente, tu navegador (o el de tu visitante) está siendo informado por el servidor de que los recursos almacenados (en caché) en el navegador no han sido modificados desde la última vez que visitó esa página.
A su vez, tu navegador recupera una versión guardada de la página web del caché. El propósito de esto es mejorar la velocidad y la entrega de la página, evitando que tu navegador tenga que descargar repetidamente la misma información.
Echa un Vistazo a Nuestro Videotutorial sobre el Código de Estado 304 No Modificado y todos los Redireccionamientos 3xx
Comprensión de las peticiones HTTP 304
Cuando tu navegador almacena un recurso en la caché, guarda lo que se llama la información del «Último encabezado modificado» que fue enviado desde el servidor. Si un navegador recibe una solicitud de una página web de la que tiene una copia guardada, pero no sabe si tiene la última versión, envía una solicitud de ‘validación condicional’ al servidor.
El navegador comunica al servidor la fecha y hora de la copia del recurso que tiene, a través del encabezado «Si-se ha-Modificado-Desde» o «Si-No-hay-coincidencia«. El servidor inspecciona estos encabezados y también mira el valor del ETag. Este último es un identificador único que se utiliza para especificar la versión de un recurso determinado.
Si los valores de estos archivos son los mismos, el servidor envía el encabezado de respuesta HTTP 304 No Modificado y el navegador utiliza la copia en caché del recurso.
Si la copia del navegador está desactualizada, lo que significa que el archivo ha sido modificado desde la última solicitud, se envía un código HTTP 200 y se utiliza una nueva copia.
Desafortunadamente, hay algunos problemas que podrían causar una respuesta HTTP 304 cuando se supone que no debería ocurrir. Las causas más comunes incluyen:
- Problemas de configuración del servidor o del servidor de nombres de dominio (DNS)
- Un recurso almacenado en memoria caché que está infectado o corrompido (es decir, un malware o un virus que afecta al navegador)
El código de estado 304 puede deberse a un problema tanto en el lado del servidor como en el lado del cliente, por lo que es posible que sea necesario solucionar el problema para diagnosticarlo y resolverlo.
¿Cómo arreglar un código de estado HTTP 304? (6 métodos potenciales)
Los métodos que puedes usar para resolver un código de estado HTTP 304 varían de simples a bastante técnicos. Los motores de búsqueda se encargan de indexar y almacenar en caché los sitios web, por lo que este problema suele ser rastreado hasta el navegador que se utiliza para acceder al sitio.
Por supuesto, no hay mucho que puedas hacer para arreglar los navegadores de las personas que intentan acceder a tu sitio.
Sin embargo, comprender lo que puede estar causando el problema a los visitantes puede ser útil, ya sea cuando se trata de encontrar una solución por tu parte o de ayudarlos directamente.
Con eso en mente, veamos seis métodos que puedes usar para intentar arreglar un código de estado HTTP 304!
1. Borrar los datos de la caché del navegador
En primer lugar, limpiar los datos del navegador para limpiar la caché podría ayudar a acceder a la URL deseada. Esto incluye borrar todos los datos de navegación, las cookies y la información de la caché.
Las instrucciones para ejecutar este proceso variarán dependiendo del navegador que estés utilizando. Si no estás seguro de cómo hacerlo en tu dispositivo, no dudes en consultar nuestra guía para vaciar la caché de los principales navegadores.
2. Ejecutar un análisis de malware
Los navegadores corruptos que han sido infectados con un virus o malware pueden ser otro culpable. Por lo tanto, es una buena idea ejecutar un análisis de malware en tu sistema. Hacerlo puede ayudar a identificar y eliminar cualquier problema que pueda estar interrumpiendo o interfiriendo con la solicitud de encabezado, incluyendo extensiones problemáticas.
Si utilizas la versión de Windows de Chrome, puedes ejecutar el Escáner de Malware y la Herramienta de Limpieza que viene incorporada.
Para ello, primero asegúrate de que estás ejecutando la última versión de Chrome abriendo una nueva pestaña y haciendo clic en el icono del menú, seguido de Acerca de Chrome:
Si tu navegador no está actualizado a la versión actual, puedes resolverlo en el mismo lugar. A continuación, abre una nueva pestaña de Chrome e introduce «chrome://configuración/limpieza» en la barra de direcciones URL.
Presiona Enter, y luego al lado de Encontrar y eliminar software dañino haz clic en el botón Buscar:
El escáner comenzará a funcionar y luego informará con los resultados.
Desafortunadamente, algunos otros navegadores como Firefox y Edge, así como los sistemas operativos MacOS y Linux, no vienen con sus propias versiones de esta herramienta incorporada. En su lugar, tendrás que ejecutar un análisis de malware con el software antivirus de tu ordenador.
3. Deshabilitar las extensiones de tu navegador
Las extensiones de tu navegador también pueden infectarse e interferir con las solicitudes y la comunicación del servidor. Por eso es posible que también quieras deshabilitarlas. Para ello, abre el menú de Chrome y ve a Configuración > Extensiones:
En la página de Extensiones, puedes desactivar cada una de ellas haciendo clic en el interruptor correspondiente.
También puedes eliminar las extensiones no utilizadas o desactualizadas mediante el botón Eliminar:
Una vez más, este proceso variará ligeramente dependiendo de tu navegador. El objetivo es eliminar o deshabilitar cada extensión manualmente y luego comprobar si eso resuelve el problema de HTTP 304.
Entonces, puedes intentar volver a encenderlos uno por uno.
4. Limpiar el DNS y reiniciar el TCP/IP
Si el problema no se ha resuelto en este momento, podría haber un problema con la configuración del DNS. Por ejemplo, el uso de una dirección IP desactualizada que podría causar un código de estado HTTP 304.
Por lo tanto, otro enfoque a intentar es limpiar DNS y reiniciar el TCP/IP.
Con Chrome, puedes vaciar DNS del navegador introduciendo «chrome://net-internals/#dns» en una nueva pestaña.
Presiona Enter, y luego haz clic en el botón Borrar la caché del host:
También puedes vaciar DNS y reiniciar el TCP/IP en tu sistema operativo. Si necesitas una orientación detallada, puedes consultar nuestro tutorial sobre ¿cómo vaciar la caché del DNS? (Windows, Mac, Chrome).
5. Intenta usar DNS público de Google
Otra posible causa es una dirección DNS incorrecta. Por lo tanto, vale la pena usar DNS público de Google para ver si eso resuelve el problema.
En Windows, puedes hacerlo pulsando las teclas Win + R. En la ventana de ejecución que aparece, escribe «ncpa.cpl» en el cuadro de comando, y luego presiona Ok.
En la ventana Conexiones de red que se abre a continuación, localiza la conexión de red que estás usando y haz clic con el botón derecho del ratón en ella. A continuación, selecciona Propiedades:
Desde allí, haz doble clic en el Protocolo de Internet versión 4:
Selecciona la opción «Use the following DNS server addresses», luego introduce el valor «8.8.8.8» en Preferred y «8.8.4.4» en Alternate:
Cuando termines, haz clic en Ok. Luego reinicia tu sistema, e intenta acceder a la página web de nuevo.
Para cambiar la configuración del servidor DNS mediante macOS, irías a Apple > Preferencias del sistema > Red:
En la ventana que se abre, selecciona tu conexión, luego haz clic en Avanzado seguido de la pestaña DNS:
Haz clic en el icono + junto a las direcciones IPv4 o IPv6 para sustituir las direcciones existentes por las IP públicas de Google.
Para más instrucciones o para obtener orientación sobre el uso del DNS público de Google en Linux u otro sistema operativo, consulta la guía de DNS de Google.
6. Comprueba los archivos de configuración del servidor para ver si hay instrucciones de redireccionamiento incorrectas
Un código de estado HTTP 304 No Modificado puede ocurrir debido a problemas relacionados con el servidor y el cliente. Si ninguno de los métodos que hemos cubierto hasta ahora ha corregido el problema, los archivos de configuración de tu servidor pueden estar en peligro. Por ejemplo, es posible que haya instrucciones de redireccionamiento incorrectas.
El proceso para comprobar los archivos de configuración de tu servidor depende de si estás usando Nginx o Apache.
En Kinsta, usamos el servidor web de Nginx. Así que si eres un usuario de Kinsta, no tendrás acceso al archivo .htaccess que hacen los usuarios de Apache.
Sin embargo, todavía puedes realizar funciones similares. Por ejemplo, después de iniciar sesión en MyKinsta, puedes comprobar en la sección Análisis > Respuesta del panel de control un desglose de los códigos de respuesta y redirecciones:
También puedes comprobar los registros de errores. Si tienes alguna pregunta o solicitud específica sobre la edición de los archivos de configuración, tu mejor opción es contactar con nuestro equipo de soporte.
Si tu servidor se ejecuta en Apache, entonces querrás buscar el archivo . htaccess en el directorio raíz de tu sitio. Puedes hacerlo ingresando al Administrador de Archivos de tu cuenta de hospedaje y navegando a la carpeta public_html.
Una vez que abras ese archivo, busca una sección de módulo mod_cache. Debería verse algo como esto:
LoadModule cache_module modules/mod_cache.so
<IfModule mod_cache.c>
LoadModule cache_disk_module modules/mod_cache_disk.so
<IfModule mod_cache_disk.c>
CacheRoot "c:/cacheroot"
CacheEnable disk "/"
CacheDirLevels 5
CacheDirLength 3
</IfModule>
# When acting as a proxy, don't cache the list of security updates
CacheDisable "https://security.update.server/update-list/"
</IfModule>
No recomendamos borrar nada, ya que eso puede causar daños graves. En su lugar, puedes intentar comentar temporalmente la sección de caché añadiendo un símbolo «#» al principio de cada línea.
Después de guardar los cambios, comprueba si esto resolvió el código de estado del HTTP 304.
Resumen
Los códigos de redireccionamiento 300s se utilizan para mejorar la velocidad y el rendimiento de la página. Desafortunadamente, cuando un servidor o un navegador no está configurado correctamente, la comunicación entre ambos puede interrumpirse y dar lugar a un código de estado HTTP 304 no modificado. Hay seis métodos que puedes utilizar para solucionarlo, concretamente:
- Borrando los datos de la caché de tu navegador.
- Ejecutando un análisis de malware.
- Deshabilitando las extensiones de tu navegador.
- Limpiando DNS y restableciendo el TCI/IP.
- Probando DNS de Google Public.
- Comprobando los archivos de configuración del servidor para ver si hay instrucciones de redireccionamiento incorrectas.