Що це означає
Сервер вимагає, щоб запит був умовним (If-Match тощо), аби запобігти втраті оновлень.
Типові причини
- PUT або PATCH без If-Match в API, що вимагає оптимістичного блокування
Як виправити
Якщо ви клієнт або відвідувач
Отримайте ресурс через GET, візьміть його ETag і надішліть в If-Match разом з оновленням.
Якщо ви власник сайту чи API
Поясніть у тілі, який заголовок потрібен.
Приклад відповіді
HTTP/1.1
HTTP/1.1 428 Precondition Required
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Precondition Required",
"status": 428,
"detail": "Send If-Match with the ETag you last read."
} Специфікація
Часті запитання
› Навіщо API вимагає If-Match?
Щоб два клієнти непомітно не перезаписали зміни одне одного.
› 428 чи 412?
428: передумову не надіслано. 412: надіслано, але вона не виконалася.