304

Not Modified

Oficial
No es necesario retransmitir el recurso, ya que no se ha producido ningún cambio.

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:

  1. Content-Location, Date, ETag, y Vary
  2. 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

trabajo en curso

¿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:

Código de estado 304 Not Modified
Visión general
URL: https://http-statuscode.com/errorCodeExample.php?code=304
Estado: 304 Not Modified
Esos: Network
Dirección IP: XX.XX.XX.XX
Código de estado 304 Not Modified

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

http.StatusNotModified
Response::HTTP_NOT_MODIFIED
:not_modified

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...

Autor: Tony Brüser
Autor: Tony Brüser

Tony Brüser es un entusiasta desarrollador web aficionado a los códigos de estado HTTP.

LinkedInGitHub