Saltar al contenido

2xx · Éxito

Código HTTP 204 No Content: qué significa

El código 204 No Content indica que la petición ha funcionado y que la respuesta no tiene cuerpo. Es la respuesta habitual a un DELETE o a un PUT que actualiza un recurso cuando no hace falta devolver nada.

Qué significa el código 204

Con 204 el servidor dice "hecho, no hay nada más que contarte". El navegador no cambia de página y el cliente no debe intentar leer un cuerpo.

También es la respuesta típica de los preflight CORS (peticiones OPTIONS) y de endpoints de analítica que solo registran un evento.

Cuándo aparece

  • DELETE de un recurso que se ha borrado correctamente.
  • PUT/PATCH sin necesidad de devolver el recurso actualizado.
  • Respuestas a peticiones OPTIONS (CORS).

Qué tener en cuenta

  • No envíes cuerpo con un 204: algunos clientes fallan al intentar parsearlo como JSON.
  • Si tu cliente espera JSON siempre, devuelve 200 con {} en lugar de 204.

Configuración y comandos

nginx: respuesta rápida a un preflight CORS

nginx
if ($request_method = OPTIONS) {
    add_header Access-Control-Allow-Origin "https://ejemplo.com";
    add_header Access-Control-Allow-Methods "GET, POST, DELETE";
    add_header Access-Control-Allow-Headers "Content-Type, Authorization";
    return 204;
}

Ejemplo de respuesta

http
DELETE /api/notas/17 HTTP/1.1

HTTP/1.1 204 No Content

Herramientas para comprobarlo

Preguntas frecuentes

¿Por qué mi fetch() da error con un 204?

Porque el código llama a response.json() y no hay cuerpo que leer. Comprueba response.status === 204 antes de parsear.

Códigos relacionados

Ver todos los códigos de estado HTTP