HTTPQUERY
Español

204 No Content

Uso

El código de estado 204 No Content se devuelve como respuesta a una operación POST, PUT o DELETE en la que no se espera ningún cuerpo de mensaje. Algunos servidores devuelven en su lugar un 200 con un cuerpo vacío y un Content-Length de 0.

Un caso de uso práctico es el resultado del envío de un formulario cuando el usuario pulsa un botón “Save”. El servidor confirma los cambios y confía en que el cliente informe al usuario del éxito de la operación.

El servidor no debe incluir ningún cuerpo de mensaje en una respuesta 204. Cabeceras como Cache-Control y ETag se siguen enviando y se aplican al documento identificado por la solicitud.

El estado relacionado 205 Reset Content tampoco devuelve cuerpo, pero además indica al cliente que reinicie la vista del documento (por ejemplo, vaciar un formulario tras el envío). Un GET condicional devuelve un 304 para señalar que no es necesario volver a obtener el recurso.

Nota

Que DELETE devuelva 204 es el patrón más habitual para la eliminación sencilla de recursos cuando no se necesita cuerpo de respuesta. Devuelva 200 en su lugar cuando la respuesta incluya detalles de confirmación o la representación del recurso eliminado. Que PUT devuelva 204 es frecuente cuando la actualización tiene éxito y el cliente no necesita que se le devuelva la representación actualizada. 204 significa “éxito, nada que mostrar”, mientras que 404 significa “recurso no encontrado”. La consulta de una colección vacía devuelve 200 con un array vacío, no 204.

Impacto en SEO

Google no puede procesar una respuesta 204 porque no recibe contenido alguno. Una URL que devuelve 204 de forma sistemática no aparecerá en los resultados de búsqueda.

Ejemplo

El cliente envía datos XML al servidor para definir un trabajo. El servidor responde confirmando que los datos se aceptaron y que el trabajo se completó. No es necesario devolver ningún contenido, por lo que el código de estado 204 No Content resulta apropiado.

Solicitud

POST /job HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 68

<?xml version="1.0"?>
<job>
  <id>125</id>
  <task>G01</task>
</job>

Respuesta

HTTP/1.1 204 No Content

Referencias de código

.NET

HttpStatusCode.NoContent

Rust

http::StatusCode::NO_CONTENT

Rails

:no_content

Go

http.StatusNoContent

Symfony

Response::HTTP_NO_CONTENT

Python3.5+

http.HTTPStatus.NO_CONTENT

Java

java.net.HttpURLConnection.HTTP_NO_CONTENT

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_NO_CONTENT

Angular

@angular/common/http/HttpStatusCode.NoContent