HTTP 409 significa que la solicitud no pudo completarse debido a un conflicto con el estado actual del recurso de destino. Este código de error 409 se utiliza en situaciones en las que el usuario podría ser capaz de resolver el conflicto y volver a enviar la solicitud.
El código HTTP 409 significa «Conflicto» . Indica que el servidor no puede procesar la solicitud del cliente debido a un conflicto en el estado actual del recurso. Esto puede ser causado por varias razones, como un conflicto en una operación de escritura concurrente, un intento de crear un recurso con un nombre ya existente, o un problema de validación en los datos enviados en la solicitud. El servidor puede incluir información adicional en el cuerpo de la respuesta para indicar la causa del conflicto y cómo resolverlo.
El servidor DEBERÍA generar una carga útil (payload) que incluya suficiente información para que el usuario pueda reconocer el origen del conflicto.
Es muy probable que los conflictos se produzcan en respuesta a una solicitud PUT. Por ejemplo, si se utilizara el sistema de versiones (Git, CVS, Apache Subversion (SVN), etc.) y la representación que se está solicitando con PUT incluyera cambios en un recurso que entraran en conflicto con los realizados por una solicitud anterior (de terceros), el servidor de origen podría utilizar una respuesta 409 conflict para indicar que no puede completar la solicitud. En este caso, la representación de respuesta probablemente contendría información útil para fusionar las diferencias basándose en el historial de revisiones.
Referencias de programación del Código de Error 409
- Symfony HTTP Status Constant
Response::HTTP_CONFLICT
- Python2 HTTP Status Constant
httplib.CONFLICT
- Python3+ HTTP Status Constant
http.client.CONFLICT
- Python3.5+ HTTP Status Constant
http.HTTPStatus.CONFLICT
- Go HTTP Status Constant
http.StatusConflict
- Rails HTTP Status Symbol
:conflict
- .NET HTTP Status Constant
System.Net.HttpStatusCode.Conflict
- C# HTTP Status Enum
HttpStatusCode.Conflict
- Rust HTTP Status Constant
http::StatusCode::CONFLICT