Ошибка 412 относится, как к обычному пользователю, так и к вебмастеру. Только, если речь идет о простом пользователе – особо делать нечего, т.к. все зависит от администратора сайта. Разберемся, что означает данная ошибка, когда она возникает и при каких условиях, а также как исправить ошибку 412 Precondition Failed.
Что такое «Ошибка 412 Precondition Failed» и когда она возникает?
Ошибка 412 Precondition Failed (Error 412 Precondition Failed) – это уведомление со стороны HTTP, которое указывает на то, что доступ к ресурсу был отклонен. Ресурсом может быть не только сайт в целом, но и отдельные элементы: изображения, аудио и видео контент, отдельные скрипты или плагины.
Следует отметить, что ошибка 412 Precondition Failed возникает в двух случаях: в клиентском браузере и на стороне администратора сайта. В первом случае, если вы уверены, что сайт должен открываться – следует почистить куки в вашем браузере. Во втором – скорее всего вы выполняли изменения на сайте. Часто, ошибка 412 возникает у администраторов, сервер которых использует систему Windows.
Для администратора сайта: причины ошибки 412
- Ошибка 412 возникает после изменений на сайте, часто изменения глобальные. Для примера, вы решили изменить код сайта, чтобы установить водяные знаки на все изображения в постах сайта. При редактировании поста может возникнуть ошибка 412. Данный случай связан с Windows Live Writer. Система выдает ошибку 412 Precondition Failed – не выполнено предварительное условие.
- При использовании Windows Server 2008 в пакете Standart SP 1 в журнале вы можете обнаружить ошибку 412. Связано это может быть не только с изменениями на самом сайте, но и банально – смена железа. Обновление в SP 2 скорее всего ничего не решит. Что делать и как исправить ошибку 412 вебмастеру читаем в следующем разделе.
- Изменения с помощью плагинов и изменения в теме сайта. При изменении дизайна сайта пакетом через административную панель, например, на WordPress. Т.е. вы приобрели пакет шаблона и попытались установить новую тему. Также и с плагинами. К слову, часто плагин WP Super Cache приводит к возникновению ошибки 412, причем не только на видимой пользователю части, но и в административной. При этом, это результат конфликта между настройками кеширования на самом сервере, и настройками установленного плагина.
Причины ошибки 412 со стороны пользователя
Со стороны пользователя ошибка возникает только в одном случае – сбой в браузере. Скорее всего, почти все сайты, которые вы раньше открывали, перестанут работать. Если проблема только с одним сайтом – это не ваша проблема. Все просто.
Как исправить ошибку 412 Precondition Failed?
Меньше всего действий нужно предпринимать со стороны пользователя. Именно поэтому, начнем список с решений для обычного пользователя. Кстати, в выдаче Google есть сайт, на котором любая ошибка, даже ошибка 404, лечится чисткой реестра или переустановкой системы Windows. Ребят, это полная чушь. В решении ошибки 412 никаких манипуляций с системой со стороны пользователя делать не стоит.
Исправление ошибки 412 обычному пользователю
Как уже упоминалось выше, если при входе на сайт вы видите ошибку 412, не паникуйте. В первую очередь, пробуйте самое простое – перезапустите ваш браузер. Не помогло? В этом случае нужно почистить куки. Обычно пользователи годами этого не делают. Можно почистить сразу все браузеры с помощью программы CCleaner – программа бесплатная. Просто скачайте, установите и в разделе чистки выполните очистку, пользуясь подсказками.
Как почистить куки без программ, чтобы удалить ошибку 412 в браузере? Перечислим несколько популярных браузеров и пути для поиска функции в программе. Внимание: удаляются все данные сайтов, включая сохраненные пароли (если удалять комплексом куки, историю, автозаполнение и т.д.).
Opera. Нажимаем на иконку Оперы в левом верхнем углу, затем ищем «Настройки». Затем выбираем пункты: Безопасность – Все файлы cookies – выбираем все – нажимаем удалить.
Google Chrome. В новой пустой вкладке нажимаем комбинацию клавиш – Shift+Ctrl+Del. Ставим все галочки, выбираем время «Очистить за все время» и удаляем.
Mozilla Firefox. В правом верхнем углу есть три полоски (нажимаем) и ищем пункт «Настройки». Вы увидите страницу, где в левой колонке нужно выбрать «Приватность и Защита» — нажимаем. Смотрим раздел «Куки и данные сайтов» и нажимаем там «Удалить данные». Подтверждаем – «Удалить».
Что делать администратору сайта?
- В первом случае, который описан выше, попробуйте просто восстановить сайт из резервной копии. Обычно, любой уважающий себя хостинг, делает ежедневные резервные копии. Это можно сделать, если вы сделали много правок на сайте и не знаете, какая именно правка или какие изменения вызвали ошибку. Совет на будущее – сделали правку, проверили сайт. Ошибка 412 Precondition Failed уйдет после восстановления из резервной копии. На всякий случай, восстановить нужно, как сайт, так и БД.
- Если ошибка 412 возникла на системе Windows Server 2008, можно переустановить систему. Но более удачное решение – установить Update Если у вас стоит SP 1, обновление до SP 2 ничего не изменит. Чтобы исправить ошибку 412 также можно просто переустановить систему с нуля. Данные манипуляции следует делать, если вы на 100% уверены, что ошибка не связана с последними изменениями на сайте, которые вы делали.
- В случае обнаружения ошибки 412 на сайте нужно сразу пройти в консоль Google. Проверьте, какие страницы привели первоначально к сбою. Возможно, если ошибка возникла давно, эти страницы выпали из поиска. Это грустно. Придется поработать. Начните с отката изменений, например, удалите последние плагины. Параллельно нужно тестировать сайт на разных устройствах.
Вообще, ошибка 412 у вебмастера возникает ввиду не аккуратного редактирования кода, поэтому всегда делайте резервную копию перед любыми правками. Если остались вопросы – напишите в комментариях, отвечаю быстро. До связи.
400 — Bad Request (Некорректный запрос)
«Плохой запрос». Этот ответ означает, что сервер не понимает… Читать далее
Подробнее
401 — Unauthorized (Не авторизован)
«Неавторизовано». Для получения запрашиваемого ответа нужна … Читать далее
Подробнее
402 — Payment Required (Необходима оплата)
«Необходима оплата». Этот код ответа зарезервирован для буду… Читать далее
Подробнее
403 — Forbidden (Запрещено)
«Запрещено». У клиента нет прав доступа к содержимому, поэто… Читать далее
Подробнее
404 — Not Found (Не найдено)
«Не найден». Сервер не может найти запрашиваемый ресурс. Код… Читать далее
Подробнее
405 — Method Not Allowed (Метод не поддерживается)
«Метод не разрешен». Сервер знает о запрашиваемом методе, но… Читать далее
Подробнее
406 — Not Acceptable (Неприемлемо)
Этот ответ отсылается, когда веб сервер после выполнения ser… Читать далее
Подробнее
407 — Proxy Authentication Required (Необходима аутентификация прокси)
Этот код ответа аналогичен коду 401, только аутентификация т… Читать далее
Подробнее
408 — Request Timeout (Истекло время ожидания)
Ответ с таким кодом может прийти, даже без предшествующего з… Читать далее
Подробнее
409 — Conflict (Конфликт)
Этот ответ отсылается, когда запрос конфликтует с текущим со… Читать далее
Подробнее
410 — Gone (Удалён)
Этот ответ отсылается, когда запрашиваемый контент удален с … Читать далее
Подробнее
411 — Length Required (Необходима длина)
Запрос отклонен, потому что сервер требует указание заголовк… Читать далее
Подробнее
412 — Precondition Failed (Условие ложно)
Клиент указал в своих заголовках условия, которые сервер не … Читать далее
Подробнее
413 — Request Entity Too Large (Полезная нагрузка слишком велика)
Размер запроса превышает лимит, объявленный сервером. Сервер… Читать далее
Подробнее
414 — Request-URI Too Long (URI слишком длинный)
URI запрашиваемый клиентом слишком длинный для того, чтобы с… Читать далее
Подробнее
415 — Unsupported Media Type (Неподдерживаемый тип данных)
Медиа формат запрашиваемых данных не поддерживается сервером… Читать далее
Подробнее
416 — Requested Range Not Satisfiable (Диапазон не достижим)
Диапозон указанный заголовком запроса Range не может бы… Читать далее
Подробнее
417 — Expectation Failed (Ожидание не удалось)
Этот код ответа означает, что ожидание, полученное из заголо… Читать далее
Подробнее
418 — I’m a teapot (Я — чайник)
I’m a teapot — Этот код был введен в 1998 году как одна из т… Читать далее
Подробнее
419 — Authentication Timeout (not in RFC 2616) (Обычно ошибка проверки CSRF)
Authentication Timeout (not in RFC 2616) — Этого кода нет в … Читать далее
Подробнее
420 — Enhance Your Calm (Twitter) (Подождите немного (Твиттер))
Возвращается Twitter Search и Trends API, когда клиент отпра… Читать далее
Подробнее
421 — Misdirected Request (Неверный запрос)
Misdirected Request — запрос был перенаправлен на сервер, не… Читать далее
Подробнее
422 — Unprocessable Entity (Необрабатываемый экземпляр)
Запрос имел правильный формат, но его нельзя обработать из-з… Читать далее
Подробнее
423 — Locked (Заблокировано)
Целевой ресурс из запроса заблокирован от применения к нему … Читать далее
Подробнее
424 — Failed Dependency (Невыполненная зависимость)
Не удалось завершить запрос из-за ошибок к предыдущем запрос… Читать далее
Подробнее
425 — Too Early (Слишком рано)
Too Early — сервер не готов принять риски обработки «ранней … Читать далее
Подробнее
426 — Upgrade Required (Необходимо обновление)
Указание сервера, клиенту, обновить протокол. Заголовок отве… Читать далее
Подробнее
428 — Precondition Required (Необходимо предусловие)
Precondition Required — сервер указывает клиенту на необходи… Читать далее
Подробнее
429 — Too Many Requests (Слишком много запросов)
Too Many Requests — клиент попытался отправить слишком много… Читать далее
Подробнее
430 — Would Block (Будет заблокировано)
Код состояния 430 would Block — это код, который сервер мог … Читать далее
Подробнее
431 — Request Header Fields Too Large (Поля заголовка запроса слишком большие)
Request Header Fields Too Large — Превышена допустимая длина… Читать далее
Подробнее
434 — Requested host unavailable (Запрашиваемый адрес недоступен)
Сервер к которому вы обратились недоступен… Читать далее
Подробнее
444 — No Response (Nginx) (Нет ответа (Nginx))
Код ответа Nginx. Сервер не вернул информацию и закрыл соеди… Читать далее
Подробнее
449 — Retry With (Повторить с…)
Retry With — возвращается сервером, если для обработки запро… Читать далее
Подробнее
450 — Blocked by Windows Parental Controls (Microsoft) (Заблокировано родительским контролем Windows (Microsoft))
Расширение Microsoft. Эта ошибка возникает, когда родительск… Читать далее
Подробнее
451 — Unavailable For Legal Reasons (Недоступно по юридическим причинам)
Unavailable For Legal Reasons — доступ к ресурсу закрыт по ю… Читать далее
Подробнее
499 — Client Closed Request (Клиент закрыл соединение)
Нестандартный код состояния, представленный nginx для случая… Читать далее
Подробнее
Практически каждый сталкивался с ситуацией, когда в ответ на попытку открыть сайт, загрузить файл или приложение браузер выдает ошибку, например, 404 – Not Found. Каждая ошибка имеет свой код – трехзначное число, по которому можно определить, что именно произошло с запросом.
На самом деле веб-сервер высылает трехзначные коды в ответ на любое обращение браузера к нему, даже если запрос обработан успешно. Но обычный пользователь сталкивается только с кодами, обозначающими ошибку обработки запроса, а успешные и информационные ответы сервера остаются для него невидимыми.
В этой статье мы разберем, какие виды ошибок зашифрованы в ответах и почему эти ошибки возникают.
Ошибки 4xx (400-414)
Ответы с кодами от 400 до 414 называют «ошибками на стороне клиента». Сервер дает понять, что что-то не так с самим запросом. Несмотря на классификацию, такие ошибки часто необходимо исправлять вебмастеру, а не пользователю. Их причиной могу быть неправильные настройки веб-сервера, скриптов сайта и т. п.
Ошибка 400
Расшифровывается как «неверный запрос». Код ошибки 400 говорит о том, что запрос составлен неправильно, и сервер не может его понять. Если вы формируете запрос вручную, то, возможно, указали неверный URL. Но чаще всего запрос повреждается в результате технического сбоя или искажения данных при передаче. Это может произойти по нескольким причинам:
- передача данных блокируется антивирусом или брандмауэром Windows;
- данные искажаются при нестабильном соединении;
- клиент (браузер или приложение) пытается загрузить слишком большой файл;
- повреждены или устарели куки на стороне пользователя.
Ошибка 401
Пояснение – «не авторизовано». Код ошибки 401 означает, что запрос направлен к защищенным ресурсам, для которых требуется аутентификация. Сервер ожидает получить логин и пароль, но в запросе их нет.
Ошибка 403
Ответ означает «Запрещено». У пользователя нет прав на доступ к файлам или папкам по ссылке. Чаще всего вебмастеру исправлять ничего не нужно, все настроено верно. А вот пользователю необходимо проверить, правильно ли он указал адрес страницы. Иногда из-за опечатки ссылка ведет в запрещенную для просмотра папку, а не на страницу сайта.
Если же пользователь не может попасть на страницу, которая должна быть разрешена к просмотру, то, возможно, в настройках сайта или внутренних ссылках есть ошибки, которые нужно исправить разработчику.
Ошибка 404
Самый популярный код ошибки – 404. Переводится как «не найдено». Такой ответ сервер отсылает, если не находит документ, файл или страницу по указанному пользователем адресу. Возможные причины:
- страница, которая ранее размещалась по этой ссылке, перемещена или удалена навсегда. В этом случае для SEO-продвижения будет лучше, чтобы сервер отдавал ответы с кодами 410 или 301, а не обрабатывал запрос как 404 ошибку. Вебмастеру нужно об этом позаботиться;
- страница недоступна временно из-за технических сбоев. В этом случае ничего делать не нужно за исключением устранения самих сбоев;
- пользователь опечатался и ввел неправильный адрес страницы. Предпринимать ничего не нужно, 404 ответ в этом случае является корректным.
Страницу, на которой посетитель видит код ошибки 404, рекомендуется оформить с пользой: дать ссылки на главную страницу сайта и популярные разделы, объяснить, почему пользователь видит эту ошибку. На многих сайтах на 404 странице можно увидеть креативное оформление, забавные анимации и т. п.
Ошибка 405
Расшифровка – «метод не поддерживается». Для каждого типа операций (загрузка, передача данных) http-протокол предусматривает использование своего метода (GET, POST и т. д.). Ошибка означает, что запрос на сервер выполнен с использованием неправильного метода. От клиента здесь мало что зависит, причины – в настройках веб-сервера. Например:
- происходит попытка обработки файлов с помощью метода POST, тогда как файлы этого формата должны обрабатываться непосредственно сервером Apache;
- PHP-скрипт не справляется с большим объемом импорта данных, такую операцию лучше проводить другими способами. Время, отведенное на работу скрипта, превышается, и возникает ошибка 405;
- некорректно настроено взаимодействие метода POST и модуля FastCGI.
Ошибка 406
Расшифровывается как «неприемлемо». Достаточно редкий ответ. Возникает, если сервер отдает информацию в виде, который не может распознать клиент (ваш браузер, или поисковый робот – если ошибка появляется при индексации страниц сайта). Чаще всего контент не распознается из-за сжатия или неподдерживаемого формата, иногда – неправильной кодировки.
Причина может быть в:
- установленном на хостинге брандмауэре ModSecurity. Он блокирует запросы, которые считает зловредными. Иногда «под раздачу» попадают и вполне безобидные обращения. Часто ошибка 406 появляется после установки плагинов, кодов рекламных баннеров;
- неверных заголовках Content-Type или Content-Encoding;
- отправке в ответ на запрос поискового робота сжатого контента, тогда как требуются данные без сжатия.
Ошибка 407
Пояснение переводится как «нужна аутентификация прокси». Возникает, если доступ в сеть или к определенным сайтам осуществляется через прокси-сервер, но в запросе нет данных для авторизации на нем. Пользователю нужно пройти аутентификацию. Обычно в тексте ответа с кодом 407 содержатся подсказки – как это сделать.
Ошибка 408
Переводится как «истекло время запроса». Может возникнуть при передаче больших файлов, временного сбоя интернет-подключения, перегрузке сервера в данный момент и т. д. Чаще всего никаких действий от вебмастера не требуется, за исключением случаев, когда 408 ошибка появляется часто и есть подозрение, что сервер не справляется с текущей нагрузкой. Тогда стоит подумать об аренде дополнительных ресурсов хостинга или переходе на более подходящий тарифный план.
Со стороны пользователя чаще всего устранить проблему можно простой перезагрузкой страницы. Также можно попробовать зайти на сайт позже или проверить стабильность интернет-соединения.
Ошибка 409
Произошел конфликт запроса и данных на сервере. Например, пользователь загружает файл устаревшей версии, в то время как аналогичный файл на сервере – более новый.
В некоторых случаях причиной может быть:
- конфликт обращений между файлами на самом сервере, тогда действия пользователя здесь ни при чем;
- конфликт с прокси, через которые идет обращение к серверу;
- вирусное ПО на компьютере пользователя;
- сбой в работе браузера.
Чаще всего ошибку можно устранить, просто загрузив корректный файл.
Ошибка 410
Страница или документ, к которому обращается запрос, недоступен. Ошибка 410 похожа на 404 с той лишь разницей, что она выдается, если данные по ссылке удалены навсегда.
Исправлять чаще всего ничего не нужно. Наоборот, рекомендуется прописывать код ответа 410 для документов или страниц, которые были удалены, чтобы поисковые роботы не тратили на них лимит сканирования при переобходе сайта.
Ошибка 411
Расшифровывается как «требуется длина». Такая ситуация может возникнуть при передаче файлов определенными методами и выставленных ограничениях на передаваемый объем. В этих случаях серверу нужен параметр Content-Length, и он ожидает увидеть его в запросе.
Ошибка 412
Расшифровывается как «предварительное условие не выполнено». Причину ошибки нужно искать в заголовках запроса. Иногда там прописываются различные условия, и сервер обязан проверить их соблюдение перед обработкой запроса. Если при проверке сервер выявляет, что условия не могут быть выполнены, не соблюдаются, он отклоняет запрос и высылает ответ с кодом 412.
Самая простая причина – проблема в браузере пользователя. Достаточно почистить кеш и куки, чтобы ошибка исчезла.
Также проблема может возникнуть после установки на сайте новых тем, плагинов или некорректного изменения кода.
Ошибка 413
Означает «слишком большое тело запроса». Объем запроса больше, чем веб-сервер может обработать. Чаще всего возникает при загрузке слишком большого файла. Ограничения по объему файлов могут быть выставлены по умолчанию (например, в Nginx это 1 МБ) или веб-мастером. Чтобы увеличить допустимый объем, измените настройки веб-сервера, директивы .htaccess или скрипты php, которые отвечают за загрузку.
Если ограничения выставлены корректно, то пользователю нужно порекомендовать:
- загрузить файл меньшего размера (сжать изображение или видео);
- архивировать загружаемый файл (при архивации будет применено сжатие и размер файла уменьшится);
- не загружать несколько файлов одновременно.
Ошибка 414
Перевод пояснения – «URL слишком длинный». Сервер не может взять в обработку слишком длинный веб-адрес, и поэтому отклоняет запрос.
Ошибка может возникнуть, например, при некорректно настроенном коде CMS, когда при каждом переходе со страницы на страницу в административной панели сайта к URL дописывается фрагмент с параметрами. Таким образом ссылка становится все длиннее и длиннее, пока не превышает лимит.
Часто наличие таких ошибок и переходов по длинным URL свидетельствуют о попытках взломать сайт.
Ошибки на стороне сервера 5xx
Следующая категория ошибок – на стороне сервера (с 500 по 560). Ответ с таким кодом говорит, что запрос корректный, и отвечает всем требованиям сервера, но сам сервер по своим причинам не может его обработать. Разберем коротко каждую из ошибок.
Ошибка 500
Перевод пояснения – «внутренняя ошибка сервера». Ответ с кодом 500 выдается в том случае, когда ошибку нельзя отнести ни к каким другим типам – сервер не может определить, в чем проблема. Часто причина в неверных настройках .htaccess.
Ошибка 501
Означает «не реализовано». Сервер не понимает метод запроса, или не имеет функциональности для его обработки. Не стоит путать с 405 ошибкой – в ее случае метод просто используется неправильно (не к тем данным или неправильным способом), однако сервер его знает.
Ошибка 502
Означает «ошибка шлюза». Если запрос проходит через несколько серверов (через прокси), и какой-то из них не может обработать запрос, то первый сервер отдает такую ошибку. Возможные причины:
- блокировка запроса файерволом сервера;
- нет связи между какими-то участками в пути следования запроса;
- имеет место неправильная настройка сервера- «виновника» или конфликт настроек между серверами;
- сервер неисправен и т. п.
Ошибка 503
Пояснение переводится как как «сервис недоступен». Возможные причины:
- к серверу одновременно поступило большое количество обращений пользователей, и у него не хватает мощности их все обработать;
- на сервере стоит ограничение на максимальное одновременное подключение пользователей, и оно превышено;
- на сервере проводятся технические работы.
Ошибка 503 может быть связана с DDoS-атакой или просто перегрузкой сервера из-за несоответствия нагрузки на сайт и выделенных под него на хостинге мощностей. В последнем случае, возможно, стоит перейти на тарифный план уровнем выше.
Ошибка 504
Означает, что «время прохождения через шлюз истекло». Возникает, если запрос проходит через один или несколько шлюзов-серверов, и один из них не укладывается в отведенный таймаут. Причинами могут быть слишком короткий таймаут в настройках, перегрузка сервера запросами, медленное или нестабильное интернет-соединение между серверами и т. п.
Ошибка 505
Означает «версия http не поддерживается». Здесь причина понятна из названия ошибки. Такой ответ можно получить, если на сервере или клиенте работает устаревшее программное обеспечение, а также из-за некорректных настроек обработки запросов на стороне сервера.
Ошибка 506
Можно расшифровать как «сервер подвергается цензуре». Сервер, к которому отправлен запрос, запрещен для доступа из-за цензурных ограничений.
412 Предупреждение Ошибка
Протокол передачи гипертекста (HTTP) 412 Precondition Failed
client error response code указывает, что доступ к целевому ресурсу был запрещен. Это происходит с условными запросами к методам, отличным от GET
или HEAD
, когда условие, определенное заголовками If-Unmodified-Since
или If-None-Match
, не выполняется. В этом случае запрос, обычно загрузка или изменение ресурса, не может быть выполнен, и этот ответ об ошибке отправляется обратно.
Status
Examples
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" ETag: W/"0815"
Предотвращение столкновений в воздухе
С помощью ETag
и If-Match
вы можете обнаруживать конфликты редактирования в воздухе.
Например, при редактировании MDN текущий контент вики хешируется и помещается в Etag
в ответе:
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
При сохранении изменений на вики-странице (данные публикации) запрос POST
будет содержать заголовок If-Match
, содержащий значения ETag
, по которым выполняется проверка актуальности .
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
Если хэши не совпадают, это означает, что документ был отредактирован между ними, и Precondition Failed
ошибка 412
Precondition Failed .
Specifications
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | |
412 |
Yes |
12 |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
See also
304
If-Unmodified-Since
If-None-Match
428
HTTP
-
410 Gone
Код ответа ошибки клиента HyperText Transfer Protocol (HTTP)410 Gone указывает,что доступ к целевому ресурсу больше не доступен серверу происхождения и
-
411 Требуемая длина
Код ошибки ответа клиента HyperText Transfer Protocol (HTTP)411 Length Required указывает,что сервер отказывается принимать запрос без определенной Content-Length.
-
413 Слишком большая грузоподъемность
Код состояния ответа HTTP 413 Payload Too Large указывает на то,что объект запроса превышает пределы,определенные сервером;возможно закрытие соединения или возврат Retry-After
-
414 УРТ слишком длинный
Код состояния ответа HTTP 414 URI Too Long указывает на то,что запрос клиента длиннее,чем сервер готов интерпретировать.
HTTP response status code 412 Precondition Failed is a client error that is returned by the server to indicate that one or more of the client-specified conditions in the request has failed. Due to this failure, the request was not completed.
Usage
When the 412 Precondition Failed error message is received, the client will know that one or more of the conditions that are specified in the request has failed, and as such, the resource was not in the expected state. This happens for HTTP requests that are not of type HTTP method HEAD or HTTP method GET.
This is similar to response 304 Not Modified, although in that case, a resource was not sent to the client in response to an HTTP method HEAD or GET request because the client already had the most recent version available, and a subsequent transmission will be a waste of bandwidth.
Note
Search engines like Google will not index a URL with 412 Precondition Failed response status, and consequently, URLs that have been indexed in the past but are now returning this HTTP status code will be removed from the search results.
Example
In the example, the client wants to reply to a blog post, but only under the condition that the post has not been changed since the client last viewed it. The condition is contained as part of the If-Unmodified-Since header. When it fails, it is because the resource has indeed been modified, and the server responds with 412 Precondition Failed to indicate that the request was not completed.
By following this protocol, the problem of having a ‘lost update’ is avoided. Lost updates occur when multiple people are writing to the same resource, and one or more is working with an outdated version. By ensuring that the resource has not been modified, they are guaranteed not to overwrite or modify data that has been modified in the interim.
It is easy to imagine that without this in place, notes in a live document can be overwritten because a subsequent update had been initiated before the start and finish of a shorter one. The shorter one will be overwritten because the subsequent post has cached an older version and with its updates applied, rewrite the entire file.
Request
POST /blog/update?postid=111&task=reply HTTP/1.1
Host: www.example.ai
If-Unmodified-Since: Fri, 1 Jan 2021 00:00:00 GMT
Content-Type: text/plain
Content-Length: 45
<Message body contains reply-text from the client>
Response
HTTP/1.1 412 Precondition Failed
Content-Type: text/html
Content-Length: 182
<html>
<head>
<title>Blog Update Error</title>
</head>
<body>
<p>The post has changed since you last viewed it, so your reply will not be recorded.</p>
</body>
</html>
Code references
.NET
HttpStatusCode.PreconditionFailed
Rust
http::StatusCode::PRECONDITION_FAILED
Rails
:precondition_failed
Go
http.StatusPreconditionFailed
Symfony
Response::HTTP_PRECONDITION_FAILED
Python3.5+
http.HTTPStatus.PRECONDITION_FAILED
Java
java.net.HttpURLConnection.HTTP_PRECON_FAILED
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_PRECONDITION_FAILED
Angular
@angular/common/http/HttpStatusCode.PreconditionFailed
Takeaway
The 412 Precondition Failed status code is a client error sent in response to an HTTP request that is not of type HTTP method HEAD or HTTP method GET, indicating that one of the specified conditions has failed and that the request will not be completed.
See also
- RFC 7232 HTTP response status code 412 Precondition Failed is a client error that is returned by the server to indicate that one or more of the client-specified conditions in the request has failed. Due to this failure, the request was not completed.
Last updated: June 2, 2022