El servidor ha cumplido exitosamente con la solicitud y no hay contenido adicional para enviar en el cuerpo del contenido de respuesta.
Los metadatos en los campos de encabezado de respuesta se refieren al recurso objetivo y su representación seleccionada después de que se aplicó la acción solicitada.
Por ejemplo, si se recibe un código de estado 204 en respuesta a una solicitud PUT y la respuesta contiene un campo de encabezado ETag, entonces el PUT fue exitoso y el valor del campo ETag contiene la etiqueta de entidad para la nueva representación de ese recurso objetivo.
La respuesta 204 permite a un servidor indicar que la acción ha sido aplicada exitosamente al recurso objetivo, mientras implica que el agente de usuario no necesita navegar fuera de su “vista de documento” actual (si la hay). El servidor asume que el agente de usuario proporcionará alguna indicación del éxito a su usuario, de acuerdo con su propia interfaz, y aplicará cualquier metadato nuevo o actualizado en la respuesta a su representación activa.
Por ejemplo, un código de estado 204 se usa comúnmente con interfaces de edición de documentos correspondientes a una acción “guardar”, de tal manera que el documento que se está guardando permanece disponible para el usuario para editar. También se usa frecuentemente con interfaces que esperan que las transferencias de datos automatizadas sean prevalentes, como dentro de sistemas de control de versiones distribuidos.
Una respuesta 204 termina en la primera línea vacía después de los campos de encabezado porque no puede contener un cuerpo de mensaje.
Una respuesta 204 es cacheable por defecto; es decir, a menos que se indique lo contrario por la definición del método o controles de caché explícitos1.
- 1 Calculating Heuristic Freshness RFC7234 Section 4.2.2
- Source: RFC7231 Section 6.3.5
Referencias por lenguaje
- .NET HTTP Status Enum
HttpStatusCode.NoContent - Rust HTTP Status Constant
http::StatusCode::NO_CONTENT - Rails HTTP Status Symbol
:no_content - Go HTTP Status Constant
http.StatusNoContent - Symfony HTTP Status Constant
Response::HTTP_NO_CONTENT - Python2 HTTP Status Constant
httplib.NO_CONTENT - Python3+ HTTP Status Constant
http.client.NO_CONTENT - Python3.5+ HTTP Status Constant
http.HTTPStatus.NO_CONTENT