¿Qué es una respuesta 304 No Modificado?
El código de respuesta del servidor HTTP 304 Not Modified indica que el recurso solicitado no ha sido modificado desde la última vez que se cargó, lo que significa que no hay necesidad de transferirlo de nuevo. Para los navegadores, esto significa que la versión en caché del recurso puede mostrarse al usuario. Para los rastreadores, como Googlebot, significa que no hay necesidad de volver a rastrear la página porque nada ha cambiado en ella.
Cómo funciona
He aquí una explicación sencilla de cómo funciona la respuesta 304 Not Modified:
-
Solicitud inicial Cuando el cliente (navegador o rastreador) solicita un recurso al servidor web por primera vez, el servidor envía el recurso solicitado con un código HTTP 200 OK, junto con su código hash, denominado ETag. El cliente también registra la hora a la que solicitó la página/el recurso.
-
Solicitudes posteriores Cuando el cliente vuelve a solicitar el recurso, el servidor comprueba las cabeceras
If-None-Match
y/oIf-Modified-Since
del cliente. Esto se conoce como solicitud HTTP condicional.If-None-Match
contiene el ETag (código hash del contenido). Si coincide con el valor en el servidor, esto indica que el contenido no ha cambiado, y no hay necesidad de cargarlo de nuevo (cuando el contenido cambia, también lo hace su código hash).If-Modified-Since
contiene la fecha y hora en que el cliente solicitó el contenido por última vez. Si el servidor ve que el contenido no ha cambiado desde esta fecha, no hay necesidad de enviar el recurso al cliente.
-
Respuesta del servidor En ambos casos, si el contenido no ha cambiado, el servidor responde con el código HTTP 304.
Cuando se utilizan tanto If-None-Match
como If-Modified-Since
, If-None-Match
tiene prioridad sobre If-Modified-Since
.
Comportamiento del navegador y del rastreador
Cuando el navegador recibe el código HTTP 304 Not Modified del servidor, mostrará la versión en caché al usuario, lo que lo convierte en uno de los códigos de redirección del lado del cliente. Para los rastreadores, recibir una respuesta 304 significa que pueden evitar descargar de nuevo el mismo contenido, conservando ancho de banda y recursos.
¿Por qué es importante el código de respuesta 304?
Para los sitios web pequeños, las ventajas de almacenamiento en caché que ofrece el código HTTP 304 pueden no ser tan significativas. Sin embargo, para sitios web grandes, el código de respuesta 304 ofrece ventajas sustanciales:
- Optimización del rendimiento Al aprovechar el contenido almacenado en caché, los navegadores pueden cargar las páginas más rápidamente para los usuarios, mejorando la experiencia general de éstos.
- Gestión del presupuesto de rastreo Para los sitios de gran tamaño, la gestión del presupuesto de rastreo es crucial. El rastreador de Google no vuelve a rastrear las páginas que no han cambiado, lo que le permite centrarse en el contenido nuevo y actualizado. Esto ayuda a garantizar que el contenido nuevo se indexe de forma más eficaz.
Prácticas recomendadas para utilizar 304 sin modificar
- Establezca cabeceras de caché adecuadas Asegúrese de que su servidor está configurado para enviar las cabeceras
ETag
yLast-Modified
adecuadas. - Controle la eficacia de la caché Compruebe periódicamente los registros del servidor para ver con qué frecuencia se emiten respuestas 304 y ajuste las políticas de caché según sea necesario.
- Optimice la distribución de contenidos Utilice redes de distribución de contenidos (CDN) que admitan mecanismos eficaces de almacenamiento en caché para reducir la latencia y mejorar los tiempos de carga.
Para obtener información más detallada sobre los códigos de estado HTTP y las mejores prácticas para el rendimiento web y SEO, consulte fuentes autorizadas como Mozilla Developer Network (MDN) y Google's Web Fundamentals.