304
Not Modified
Especificación del código de estado HTTP 304
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 solicitud condicional, ya tiene una representación válida; por lo tanto, el servidor está redirigiendo al cliente para que haga uso de esa representación almacenada como si fuera el contenido de una respuesta 200 (OK).
El servidor que genera una respuesta 304 Not Modified DEBE generar cualquiera de los siguientes campos de cabecera que se habrían enviado en una respuesta 200 (OK) a la misma solicitud:
- Content-Location, Date, ETag, y Vary
- Cache-Control y Expires (véase [CACHING])
Dado que el objetivo de una respuesta 304 Not Modified es minimizar la transferencia de información cuando el destinatario ya tiene una o más representaciones en caché, un remitente NO DEBERÍA generar metadatos de representación distintos de los campos enumerados anteriormente, a menos que dichos metadatos existan con el fin de guiar las actualizaciones de la caché (e.g., Last-Modified podría ser útil si la respuesta no tiene un campo ETag).
Los requisitos de una caché que recibe una respuesta 304 Not Modified se definen en la Sección 4.3.4 de [CACHING]. Si la petición condicional se originó con un cliente saliente, como un agente de usuario con su propia caché enviando un GET condicional a un proxy compartido, entonces el proxy DEBERÍA reenviar la respuesta 304 Not Modified a ese cliente.
Una respuesta 304 Not Modified termina con el final de la sección de cabecera; no puede contener contenido ni trailers.
Los requisitos de la caché que recibe una respuesta 304 Not Modified se definen en la Sección 4.3.4 [CACHING].
Fuente / Cita de: El código de estado HTTP 304 Not Modified se especifica en la sección 15.4.5 de RFC9110.
Protocolo HTTP
¿Cómo lanzar un código de estado 304 con PHP?
Para lanzar el código de estado HTTP 304 en una página web, se puede utilizar la función PHP http_response_code. La sintaxis es la siguiente: http_response_code(304) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Probar el código de estado HTTP 304
Para poder mostrar el código de estado HTTP (en este caso 304 Not Modified) y otra información en el lado del cliente, debe abrirse la consola de desarrollo con F12. A continuación, vaya a la pestaña "Red". Ahora se puede abrir la página, el sitio web (ejemplo index.php) debe ser visible en la pestaña de red. Esta debe ser seleccionada y luego la sección Herder debe ser seleccionada. El usuario verá entonces el siguiente resultado:
URL: https://http-statuscode.com/errorCodeExample.php?code=304
Estado: 304 Not Modified
Esos: Network
Dirección IP: XX.XX.XX.XX
Compatibilidad del código de estado 304 con los navegadores
Chrome | Yes |
Edge | Yes |
Firefox | Yes |
Opera | Yes |
Safari | Yes |
Chrome Android | Yes |
Firefox for Android | Yes |
Opera Android | Yes |
Safari on iOS | Yes |
Internet | Yes |
WebView Android | Yes |
Constantes en lenguajes de programación
Enlaces externos con más información sobre el código de estado HTTP 304:
Divertidos memes sobre el código de estado HTTP 304
Artículos de blog
Caching y códigos de estado HTTP: Optimización del rendimiento web mediante el almacenamiento inteligente en caché
El rendimiento web y la experiencia de usuario resultante son aspectos centrales para el éxito de cualquier sitio web. Un factor importante que afecta a este rendimiento son los códigos de estado H...