HTTP 204 No Content

Éxito con un cuerpo intencionalmente vacío — la solicitud funcionó, simplemente no hay nada que devolver.

Qué significa HTTP 204

HTTP 204 No Content indica éxito exactamente igual que 200, excepto que la respuesta deliberadamente no tiene cuerpo. Es la respuesta idiomática para solicitudes DELETE, para actualizaciones PUT/PATCH donde devolver el objeto sería redundante, y para endpoints de beacon o registro.

Como un 204 no debe contener cuerpo, hacer parsing JSON de una respuesta 204 en el código del cliente (por ejemplo, llamar a response.json() después de fetch) lanza un error — un fallo muy común. Comprueba el estado antes de hacer el parsing.

Causas comunes de las respuestas 204

  • Una solicitud DELETE eliminó el recurso.
  • Un PUT o PATCH actualizó un recurso y el servidor decidió no repetirlo de vuelta.
  • Un endpoint que solo registra datos (beacons de analítica, comprobaciones de salud) confirmó la recepción.

Buenas prácticas para desarrolladores

  • Nunca incluyas un cuerpo de respuesta con 204 — muchos servidores y proxies romperán la conexión si lo haces.
  • En el código del cliente, ramifica según el estado 204 antes de llamar a .json() o .text().
  • Si los clientes necesitan la representación actualizada, devuelve 200 con el cuerpo en lugar de 204.

Ejemplo de respuesta

HTTP/1.1 204 No Content
Fecha: Thu, 02 Jul 2026 10:00:00 GMT

Preguntas frecuentes

¿Cuál es la diferencia entre 204 y 200 con un cuerpo vacío?

En la práctica se comportan igual, pero 204 es explícito: la ausencia de cuerpo es intencional y los clientes no deberían intentar parsear ninguno.

¿Por qué falla response.json() en un 204?

Una respuesta 204 no tiene cuerpo en absoluto, así que no hay nada que parsear. Comprueba response.status === 204 antes de parsear.

¿DELETE debería devolver siempre 204?

Es la opción más común. Devolver 200 con un cuerpo de confirmación también es válido si los clientes necesitan detalles sobre lo que se eliminó.