Ответ
HTTP 412 Precondition Failed означает, что сервер не выполнил одно или несколько условий, указанных клиентом в условных заголовках запроса.
Применение: Используется для оптимистичной блокировки и предотвращения конфликтов при обновлении ресурсов (например, по механизму ETag).
Пример:
- Клиент получает ресурс, и в ответе приходит заголовок
ETag: "abc123". -
Для его обновления клиент отправляет запрос:
PUT /api/resource/1 HTTP/1.1 If-Match: "abc123" Content-Type: application/json {"data": "new value"} - Если за это время другой клиент уже изменил ресурс и его
ETagстал"def456", сервер вернет:HTTP/1.1 412 Precondition Failed
Распространенные условные заголовки: If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since.