412 Precondition Failed ("условие ложно")
https://httpcat.ru/412
Это прямая ссылка на изображение со статусом. Вы можете скопировать и использовать её где угодно.

Описание
Код состояния 412 Precondition Failed означает, что одна или несколько предусловий, указанных в запросе, не были выполнены сервером. Это может быть связано с проверкой версии ресурса, даты последнего изменения или других условий, заданных клиентом.
Основные характеристики:
- Используется в условных запросах — например, с заголовками
If-Match
,If-None-Match
,If-Unmodified-Since
- Позволяет избежать конфликтов при параллельных изменениях или обновлении неактуальных данных
- Сервер отказывает в выполнении запроса, если условие не соответствует текущему состоянию ресурса
Типичное использование:
PUT /api/posts/123 HTTP/1.1 If-Match: "etag-abc123" Content-Type: application/json { "title": "Обновлённая статья" } HTTP/1.1 412 Precondition Failed Content-Type: application/json { "error": "ETag mismatch", "expected": "etag-def456", "provided": "etag-abc123" }
Особенности заголовков:
If-Match
— выполняет действие только если ETag совпадаетIf-Unmodified-Since
— проверяет, не изменился ли ресурс с указанного времениETag
— уникальный идентификатор версии ресурса, возвращается в ответах
Когда использовать:
- В API с поддержкой контроля версий (например, через
ETag
) - Чтобы предотвратить перезапись ресурса, если он был изменён другим пользователем
- В оффлайн-приложениях и синхронизации, когда клиент действует по устаревшим данным
Дополнительно:
- Позволяет реализовать надёжные и безопасные операции обновления (safe PUT/PATCH)
- Если предусловие выполняется, сервер возвращает
200 OK
или204 No Content
- Часто используется совместно с заголовками
ETag
иLast-Modified
Документация: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/412