TrueURL
TrueURL

Меню

412 Precondition Failed

Условие в заголовках запроса, например If-Match или If-Unmodified-Since, оказалось ложным, поэтому сервер не применил изменение.

Поясняющая фраза
Precondition Failed
Редирект
Нет
Кэшируется по умолчанию
Нет

412 Precondition Failed означает, что одно или несколько условий в заголовках запроса оказались ложными. Это результат невыполненного If-Match или If-Unmodified-Since либо невыполненного If-None-Match для методов, кроме GET и HEAD. Запрошенное действие сервер не выполнил.

Главное назначение кода — защита от потерянных обновлений (оптимистичное управление параллельным доступом). Клиент читает ресурс вместе с его ETag, редактирует его и отправляет изменение с If-Match и этим ETag. Если кто-то другой за это время изменил ресурс, ETag уже не совпадает, и сервер отвечает 412, а не перезаписывает чужое изменение. Код также используется с If-None-Match: *, чтобы создать ресурс, только если его еще нет.

Для GET и HEAD ложное условие If-None-Match или If-Modified-Since приводит к 304 Not Modified, а не к 412.

Пример ответа

HTTP
HTTP/1.1 412 Precondition Failed
Date: Fri, 06 Nov 2026 10:15:32 GMT
ETag: "v8"
Content-Type: application/json
Content-Length: 52

{"error":"If-Match does not match the current ETag"}

SEO и проверка редиректов

Код 412 возникает при условной записи в API и WebDAV, а не при сканировании: условные запросы GET поисковых роботов заканчиваются кодом 304 или 200. Если проверка редиректов показывает 412, проверьте заголовки If-*, которые вы добавили как пользовательские заголовки запроса.

Типичные причины и сценарии использования

  • Правка отклонена, потому что ресурс изменился после того, как его прочитали (несовпадение ETag).
  • If-None-Match: * не дал перезаписать существующий файл.
  • API облачного хранилища или CDN получил условный запрос с устаревшим ETag.

Проверка редиректов URL

Бесплатная проверка редиректов TrueURL покажет все коды ответа, которые возвращает URL, — на каждом переходе цепочки.