412 Precondition Failed ("условие ложно")

https://httpcat.ru/412
Это прямая ссылка на изображение со статусом. Вы можете скопировать и использовать её где угодно.
HTTP статус 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 — уникальный идентификатор версии ресурса, возвращается в ответах

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

  1. В API с поддержкой контроля версий (например, через ETag)
  2. Чтобы предотвратить перезапись ресурса, если он был изменён другим пользователем
  3. В оффлайн-приложениях и синхронизации, когда клиент действует по устаревшим данным

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

  • Позволяет реализовать надёжные и безопасные операции обновления (safe PUT/PATCH)
  • Если предусловие выполняется, сервер возвращает 200 OK или 204 No Content
  • Часто используется совместно с заголовками ETag и Last-Modified

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


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

HTTP статус 400 — неправильный, некорректный запрос
400
неправильный, некорректный запрос
HTTP статус 428 — необходимо предусловие
428
необходимо предусловие

↑ Наверх