428 Precondition Required ("необходимо предусловие")

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

Описание

Код состояния 428 Precondition Required означает, что сервер требует, чтобы запрос включал предусловие (например, If-Match или If-Unmodified-Since), чтобы избежать непреднамеренного конфликта при модификации ресурса.

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

  • Сервер отказывается выполнять запрос без проверки условий версионирования ресурса
  • Защищает от «слепых» перезаписей ресурса при параллельной работе нескольких клиентов
  • Наиболее часто используется в API с поддержкой ETag или Last-Modified

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

PUT /api/posts/123 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "title": "New version of article"
}

HTTP/1.1 428 Precondition Required
Content-Type: application/json

{
    "error": "Missing required conditional headers like If-Match"
}

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

  • If-Match, If-Unmodified-Since — требуются клиентом для защиты от конфликтов
  • ETag — обычно используется сервером для идентификации версии ресурса

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

  1. В REST API при обновлении, удалении или перезаписи ресурса
  2. Чтобы предотвратить потерю данных при одновременном доступе
  3. Когда сервер строго требует контроля версий (optimistic concurrency control)

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

  • Определён в RFC 6585
  • Может использоваться совместно с кодами 409 Conflict и 412 Precondition Failed
  • Клиент должен повторить запрос, добавив необходимые заголовки предусловий

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


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

HTTP статус 412 — условие ложно
412
условие ложно
HTTP статус 426 — необходимо обновление
426
необходимо обновление

↑ Наверх