Código de estado 204 (Sin contenido): ¿Qué es, cómo funciona y cuándo usarlo?
Este tutorial abarca los siguientes temas:
El código de estado 204 es uno de los muchos códigos de estado HTTP que mantienen Internet funcionando sin problemas. Significa que el servidor ha completado con éxito la solicitud, al igual que el código de estado 200 OK. Sin embargo, con el estado 204 Sin contenido, no hay contenido adicional en el cuerpo de la respuesta para mostrar al usuario. Este código de estado se usa para operaciones que ocurren detrás de escena.
¿Qué significa exactamente el estado 204 No Content? ¿Cómo y cuándo debería usarlo? ¿Qué problemas potenciales pueden surgir? Responderemos a estas preguntas aquí, así que sigue leyendo.
En otras palabras, el servidor hizo lo que se le pidió, pero no hay nada nuevo o un recurso de destino específico que mostrar. Esto es útil para acciones como envíos de formularios o solicitudes AJAX donde el cliente no necesita navegar fuera de la página actual.
La respuesta HTTP incluye encabezados de entidad pero no contenido del cuerpo. Eso deja claro que no se requiere más información. Prácticamente, la respuesta comienza con el estado HTTP, los encabezados siguen, y termina después de la primera línea vacía por defecto.
¿Cómo funciona el código de estado HTTP 204?
¿Alguna vez has enviado una solicitud en línea y no has notado que nada ha cambiado en tu pantalla? Ese es el trabajo del estado HTTP 204. Te dice que el servidor aceptó tu solicitud y la gestionó perfectamente, pero no hay información nueva que mostrar.
Vamos a desglosar cómo funciona esto y por qué es tan útil para mantener todo funcionando sin problemas y sin actualizaciones innecesarias.
Aquí tienes un desglose del gráfico anterior:
- La aplicación del cliente (por ejemplo, un navegador web o un cliente API) envía una solicitud al servidor
- El servidor recibe la solicitud y la procesa. Eso incluye actualizar un registro de la base de datos o eliminar un archivo.
- Una vez que el servidor procesa con éxito la acción solicitada, prepara una respuesta. Si la acción no requiere que se envíe ninguna información nueva, el servidor opta por un código de estado 204.
- El servidor devuelve una respuesta con el código de estado 204, indicando que la solicitud fue exitosa, pero no hay contenido que devolver. La respuesta incluirá la línea de estado y los encabezados HTTP, pero no el contenido del cuerpo.
- El user-agent recibe la respuesta 204 No Content. Dado que no hay contenido, el cliente no necesita actualizar la página actual o mostrar nueva información.
- El cliente permanece en la misma página o continúa su funcionamiento actual sin interrupción.
¿Cuál es la diferencia entre las respuestas 200 y 204?
Los códigos de estado HTTP 200 y 204 indican que una solicitud se procesó con éxito, pero lo hacen de diferentes maneras.
Un código de estado 200 se conoce como “OK.” Esto significa que el servidor gestionó la solicitud y está devolviendo el contenido solicitado, como una página web o datos. Esta es la respuesta para la mayoría de las solicitudes exitosas donde el cliente necesita recibir algún tipo de información.
Por otro lado, el 204 Sin contenido también significa que la solicitud se procesó con éxito, pero no hay una nueva respuesta de contenido para devolver. Piensa en ello como que el servidor da una respuesta válida sin decir nada.
Esto es útil para acciones donde el user-agent no necesita actualizar la página actual, como cuando envías un formulario o haces una solicitud AJAX. El cliente se queda quieto, y todo continúa sin problemas sin ninguna transferencia de datos innecesaria.
204 cuerpo de la respuesta y cacheabilidad
Para entender cómo funciona el código de estado HTTP 204, debemos explicar dos puntos clave: el cuerpo de la respuesta y la cacheabilidad. Estos conceptos promueven la velocidad y la eficiencia del sitio web.
Vamos a examinarlos con más detalle.
El concepto de Cuerpo de la respuesta (definición)
El cuerpo de la respuesta es la parte de una respuesta HTTP que contiene los datos enviados por el servidor (texto, imágenes, etc.). Pero con un estado 204, las cosas son un poco diferentes.
Con el código de estado 204, el servidor informa al user-agent que no hay contenido que devolver en el cuerpo de la respuesta. Sin embargo, la respuesta seguirá conteniendo encabezados. Estos dan información adicional, como la fecha, detalles del servidor y estado de la conexión.
Esto es práctico para acciones donde el cliente no necesita actualizar la página o mostrar nueva información, como cuando envías un formulario.
Cómo se aplica la cacheabilidad al código de estado 204
La cacheabilidad se refiere a la capacidad de almacenar respuestas para que puedan ser reutilizadas más tarde. Esto reduce la necesidad de pedir al servidor la misma información de nuevo.
Dado que una respuesta 204 no tiene contenido, no hay nada que almacenar. Pero los encabezados aún se pueden almacenar en caché. El servidor puede incluir instrucciones especiales en las cabeceras HTTP para decirle al cliente cómo manejar el cacheado.
Por ejemplo, Cache-Control: no-store significa no almacenar esta respuesta. Mientras que Cache-Control: max-age=3600 significa almacenarlo durante una hora.
Aquí tienes un ejemplo de una respuesta 204 con encabezados de control de caché:
HTTP/1.1 204 No Content
Date: Mon, 25 Sep 2023 12:34:56 GMT
Server: Apache/2.4.41 (Ubuntu)
Cache-Control: max-age=3600
Connection: keep-alive
De esta manera, el cliente puede determinar rápidamente que no hay datos adicionales sin preguntar al servidor de nuevo, lo que acelera las cosas.
Ejemplos de código de estado HTTP 204
El código de estado HTTP 204 es flexible y se puede aplicar para mejorar las interacciones web en varios escenarios.
A continuación, veremos algunos ejemplos de la vida real donde el código de estado 204 se usa comúnmente.
- Solicitudes AJAX
Un ejemplo común del uso de 204 son algunas solicitudes AJAX. Cuando cambias tu nombre de usuario en un sitio web, envía una solicitud AJAX al servidor para actualizar tu perfil. El servidor procesa la solicitud de acción y envía una respuesta 204 para confirmar que se ha completado con éxito. Luego, el user-agent (tu navegador) presentará el nuevo nombre de usuario sin recargar la página o enviar información adicional.
- Envío de formularios
Otro ejemplo frecuente es el uso de una respuesta 204 en envío de formularios. Puedes presionar enviar cuando estés listo para completar una encuesta en línea o un formulario de comentarios. Eso envía una solicitud POST al servidor, que devuelve una respuesta 204 para su confirmación. El formulario permanece en la misma página, posiblemente mostrando un mensaje de “Gracias” a través de JavaScript.
- Transferencias de datos automatizadas
Supongamos que estás viendo un servicio de actualización del tiempo. El servicio meteorológico envía automáticamente los datos de temperatura a un servidor central cada hora mediante una solicitud POST. El servidor procesa los datos y devuelve un código de estado 204 para acusar recibo sin enviar ninguna información adicional.
- Sistemas de Control de Versiones Distribuidas (DVCS)
Si miramos en GITHub, podemos ver otro ejemplo del uso del código de respuesta 204. Cuando un desarrollador envía cambios a un repositorio remoto, el servidor procesa los cambios. Después de que el servidor haya completado con éxito la solicitud, puede devolver un estado 204 para reconocer el envío sin devolver ningún dato adicional.
Aquí tienes un ejemplo sencillo del campo 204 Status Code y encabezado en la pestaña Network de Chrome Developer Console:
HTTP/1.1 204 No Content
Date: Mon, 25 Sep 2023 12:34:56 GMT
Server: Apache/2.4.41 (Ubuntu)
Connection: keep-alive
En este ejemplo, la respuesta incluye la línea de estado (HTTP/1.1 204 No Content) y los campos de encabezado para Fecha, Servidor y Conexión, pero no hay contenido del cuerpo.
¿Cuándo usar un código de estado 204?
El código de estado HTTP 204 No Content es una herramienta útil para desarrolladores web y diseñadores de API. Este estado específico de los Códigos de estado HTTP indica que el servidor ha recibido la solicitud con éxito, pero no devuelve ningún contenido. Este código de estado es beneficioso en escenarios donde el cliente no necesita actualizar la página de recursos del usuario actual o mostrar nueva información.
Los beneficios de un código de estado 204
Aquí, veremos los beneficios y posibles inconvenientes de implementar el estado 204 No Content dentro de tu infraestructura.
Eficiencia en la transmisión de datos
Uno de los principales beneficios de usar HTTP status 204 es la eficacia en la transmisión de datos. El servidor conserva ancho de banda y reduce la cantidad de datos transmitidos a través de la red al no enviar un cuerpo de mensaje. Esto es particularmente útil en aplicaciones que esperan transferencias de datos automatizadas, como en actualizaciones de datos en tiempo real o tareas de sincronización en segundo plano.
Claridad en la comunicación cliente-servidor
El código de estado 204 proporciona claridad en la comunicación cliente-servidor. Claramente indica al cliente que no hay nueva información para procesar o mostrar. Esto puede ayudar a evitar confusiones y asegurar que el cliente entienda que la solicitud fue exitosa pero que no se necesitan datos adicionales.
Mejoras de rendimiento
Reducir la cantidad de datos enviados puede llevar a tiempos de respuesta más rápidos, lo que es crucial para aplicaciones sensibles al rendimiento. Con una respuesta 204 No Content, el servidor puede reconocer rápidamente la solicitud sin la sobrecarga de generar y transmitir un cuerpo de respuesta. Esto puede resultar en una aplicación más receptiva y eficiente, particularmente en escenarios donde la baja latencia es esencial.
Posibles errores del código de respuesta 204
En esta parte, repasaremos algunos de los posibles problemas que puedes encontrar con el estado 204 No Content.
Uso incorrecto de código de estado 204
Mientras que el código de estado 204 es útil, puede ser mal usado si no se aplica correctamente. Por ejemplo, usar un código de estado 204 cuando el cliente espera un cuerpo de respuesta puede generar confusión y errores. Es importante asegurarse de que el cliente no requiere ninguna información adicional antes de decidir usar un código de estado 204. El uso indebido puede resultar en transacciones incompletas o la falta de comentarios necesarios para el cliente.
Manejo de respuestas 204 del lado del cliente
Otro error potencial es el manejo de respuestas 204 por parte del cliente. No todos los clientes pueden estar preparados para manejar un código de estado 204 correctamente. Los desarrolladores deben asegurarse de que sus aplicaciones cliente puedan interpretar y responder correctamente a un código de estado 204. Esto incluye actualizar la lógica del lado del cliente para reconocer que una respuesta 204 significa que la solicitud fue exitosa, pero no se necesitan más acciones. El no manejar las respuestas 204 correctamente puede llevar a un comportamiento inesperado o errores en la aplicación.
Código de estado 204 Impacto en el SEO
Los motores de búsqueda como Google dependen del contenido para indexar y clasificar las páginas. Un código de estado 204 significa que no hay contenido para que el motor de búsqueda indexe, lo que puede resultar en que la página no se incluya en los resultados de búsqueda. Esto no es necesariamente un problema si la página no está destinada a ser indexada, pero es algo a tener en cuenta.
Por lo tanto, usar en exceso el estado HTTP 204 puede usar de manera ineficiente el presupuesto de rastreo para páginas no indexables. Para las páginas que deseas que sean indexadas y clasificadas, asegúrate de que devuelven un código de estado 200 OK e incluye contenido.
¿Cuál es la compatibilidad del navegador con el código de estado 204 HTTP?
HTTP 204 es totalmente compatible con la mayoría de los navegadores modernos. Esta amplia compatibilidad lo convierte en una opción fiable para escenarios donde el servidor necesita reconocer una solicitud exitosa sin devolver ningún contenido.
Para una mejor claridad y asimilación, usaremos la siguiente tabla.
Nombre del navegador | Compatibilidad del navegador con el código de estado 204 HTTP |
---|---|
Chrome | SÍ |
Firefox | SÍ |
Internet Explorer | SÍ |
Opera | SÍ |
Safari | SÍ |
WebView Android | SÍ |
Chrome Android | SÍ |
Firefox for Android | SÍ |
Conclusión
El código de estado HTTP 204 ayuda a hacer que las aplicaciones web sean más rápidas al manejar las solicitudes sin enviar datos adicionales. Esto ahorra ancho de banda, hace que la comunicación sea clara, y acelera los tiempos de respuesta. Sin embargo, es importante usarlo correctamente para evitar problemas, especialmente con el SEO y cómo los clientes lo manejan. Saber cuándo usar el código de estado 204 puede mejorar la experiencia del usuario y hacer que las transferencias de datos automáticas sean más fluidas.
Preguntas frecuentes sobre el código de estado HTTP 204
¿Es 204 un éxito o un fracaso?
El código de estado HTTP 204 es definitivamente un éxito. Indica que el servidor ha procesado con éxito la solicitud pero no tiene contenido para devolver. Si hubiera algún problema o error durante el procesamiento de la solicitud, el servidor devolvería un código de estado diferente. Estos códigos de estado pueden ser un código 4xx para errores del cliente (400, 401, 404 ) o un código 5xx para errores del servidor (500, 503, 504). Por lo tanto, si ves un código de estado 204, puedes estar seguro de que la solicitud se manejó con éxito.
¿Cómo arreglo mi código de estado 204?
Si estás experimentando problemas con tu estado 204 No Content, debes comprobar si tu solicitud es correcta. Además, verifica que tu servidor está configurado correctamente y que el código del lado del user-agent es compatible con las respuestas 204.
¿Qué es el código de estado 204 en Google Analytics?
En Google Analytics 4, un código de estado 204 significa que se recibió y procesó una solicitud de seguimiento, pero no se devolvió contenido. Se usa para píxeles de seguimiento, que recopilan datos sin afectar la experiencia del usuario. Este código mantiene la transmisión de datos eficiente y no recarga la página ni muestra ningún contenido, simplemente registra las acciones del usuario. Gracias a esto, Google Analytics puede recopilar datos sin ralentizar el sitio web.
¿Cuándo usar el código de estado HTTP 204 vs 404?
Usa un código de estado 204 cuando el servidor procesa con éxito una solicitud pero no tiene contenido que devolver. Es ideal para acciones como envíos de formularios o actualizaciones donde no se necesita contenido nuevo. Usar un código de estado 404 cuando el recurso solicitado no se encuentra en el servidor. Esto le dice al cliente que la página o recurso que está buscando no existe.
¿Qué es un 204 Code DELETE?
Un código 204 con DELETE significa que el servidor procesó con éxito una solicitud DELETE pero no tiene contenido para devolver. Se utiliza para confirmar que el recurso fue eliminado sin enviar ningún dato adicional. Esto mantiene la respuesta eficiente y clara. El cliente sabe que la acción de eliminación fue exitosa sin necesidad de más información.