428 Precondition Required ("необходимо предусловие")
https://httpcat.ru/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
— обычно используется сервером для идентификации версии ресурса
Когда использовать:
- В REST API при обновлении, удалении или перезаписи ресурса
- Чтобы предотвратить потерю данных при одновременном доступе
- Когда сервер строго требует контроля версий (optimistic concurrency control)
Дополнительно:
- Определён в RFC 6585
- Может использоваться совместно с кодами
409 Conflict
и412 Precondition Failed
- Клиент должен повторить запрос, добавив необходимые заголовки предусловий
Документация: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/428