409 Conflict ("конфликт")

https://httpcat.ru/409
Это прямая ссылка на изображение со статусом. Вы можете скопировать и использовать её где угодно.
HTTP статус 409 — конфликт

Описание

Код состояния 409 Conflict означает, что сервер не может обработать запрос из-за конфликта с текущим состоянием ресурса. Обычно возникает при попытке создать, обновить или удалить объект, если это нарушает целостность данных.

Основные характеристики:

  • Запрос корректен по синтаксису, но конфликтует с текущими данными
  • Может возникать при конфликте версий, уникальности, прав доступа или параллельной модификации
  • Сервер может включить в тело ответа информацию о причине конфликта

Типичное использование:

POST /api/users HTTP/1.1
Content-Type: application/json

{
    "email": "john@example.com"
}

HTTP/1.1 409 Conflict
Content-Type: application/json

{
    "error": "User with this email already exists"
}

Особенности заголовков:

  • Content-Type — если возвращается тело с пояснением конфликта
  • ETag или If-Match — могут использоваться при проверке версий

Когда использовать:

  1. При попытке создать дубликат ресурса (например, по уникальному полю)
  2. При конфликте версий данных (например, в системах с параллельным редактированием)
  3. Когда действия клиента нарушают бизнес-логику или целостность модели

Дополнительно:

  • 409 — это **логическая ошибка**, не синтаксическая
  • Отличие от 400 Bad Request: 400 — проблема в запросе, 409 — конфликт с текущим состоянием на сервере
  • В системах с редактированием может использоваться совместно с ETag и заголовками условных запросов

Документация: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/409


Похожие статусы

HTTP статус 400 — неправильный, некорректный запрос
400
неправильный, некорректный запрос
HTTP статус 422 — необрабатываемый экземпляр
422
необрабатываемый экземпляр

↑ Наверх