La solicitud no pudo completarse debido a un conflicto con el estado actual del recurso de destino. Este código se utiliza en situaciones en las que el usuario podría ser capaz de resolver el conflicto y volver a enviar la solicitud.
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 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

