412

Precondition Failed

Официален Кодове на подстатуси
Предварителните условия не са били задоволителни, искането не е било успешно

Спецификация на HTTP код на състоянието 412

Код на състоянието 412 Precondition Failed показва, че едно или повече условия, посочени в полетата на заглавието на заявката, са се оказали неверни при проверка на сървъра. Този код на отговора позволява на клиента да постави предварителни условия върху текущото състояние на ресурса (неговите текущи представяния и метаданни) и по този начин да предотврати прилагането на метода на заявката, ако целевият ресурс е в неочаквано състояние.

Източник / Цитат от: Кодът на състоянието 412 Precondition Failed на HTTP е определен в раздел 4.2 на RFC7232.

Как да изхвърлим код на състоянието 412 с PHP?

За изхвърляне на HTTP статус код 412 на уеб страница може да се използва функцията http_response_code на PHP. Синтаксисът е следният: http_response_code(412) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Тестване на код 412 на състоянието HTTP

За да можете да показвате кода на състоянието на HTTP (в този случай 412 Precondition Failed) и друга информация от страна на клиента, конзолата за разработка трябва да се отвори с F12. След това преминете към раздела "Мрежа". Сега страницата може да бъде отворена, като уебсайтът (пример index.php) трябва да се вижда в раздела "Мрежа". Той трябва да бъде избран и след това трябва да се избере разделът Herder. След това потребителят ще види следния резултат:

Код на състоянието 412 Precondition Failed
Преглед
URL: https://http-statuscode.com/errorCodeExample.php?code=412
Статус: 412 Precondition Failed
Тези: Network
IP адрес: XX.XX.XX.XX
Код на състоянието 412 Precondition Failed

Как да разреша проблема със статус код 412?

1. разбиране на причината

Проверете заглавието на предварителното условие: Първо определете кое предварително условие е зададено в заглавието на заявката и не е изпълнено. Това може да бъде заглавие If-Match, If-None-Match, If-Modified-Since, If-Unmodified-Since или If-Range.

2. проверка на метаданните на ресурса

Заглавие E-Tag и Last-Modified: Проверете метаданните на заявения ресурс. Сравнете стойността на E-Tag или датата на Last-Modified на ресурса със стойността, посочена в заявката, за да установите несъответствията.

3. Коригиране на заявката

Коригиране на заглавията: Ако проверката покаже, че стойностите в заглавията на условията на заявката не съответстват на текущото състояние на ресурса, коригирайте ги съответно.

Премахване на ненужните заглавия: В някои случаи може да е полезно да премахнете някои условни заглавия, ако те не са абсолютно необходими за заявката.

4. Управление на кеша

Проверка на кеша: Уверете се, че заявката не е засегната от кеширано състояние на ресурса. Ако е необходимо, изчистете кеша или използвайте заглавията Cache-Control, за да заобиколите кеша.

5. Конфигурация на сървъра

Проверка на конфигурацията: Проверете дали на сървъра има специални правила или конфигурации, които биха могли да доведат до този проблем, особено във връзка с обработката на условни заявки.

6. Комуникация с разработчика на API/ сървъра

Документация и поддръжка: Ако проблемът продължава, направете справка с документацията на API или сървъра и, ако е необходимо, се свържете с поддръжката или общността на разработчиците за допълнителна помощ.

7. Обработка на грешки в приложението

Разумна обработка на грешки: Реализирайте в приложението си надеждна обработка на грешки, за да реагирате по подходящ начин на кода на състоянието 412 Precondition Failed, например като изпратите отново заявката с персонализирани заглавия или като уведомите потребителя за грешката.

8. Тестване и наблюдение

Изчерпателно тестване: Тествайте приложението си при различни условия, за да сте сигурни, че то реагира правилно на грешки с код 412 Precondition Failed.

Наблюдение: Използвайте инструменти за наблюдение, за да откривате и анализирате такива грешки, така че да можете да реагирате превантивно на проблеми.

Как да създадете собствена страница за грешка с код на състоянието 412

Създаването на собствена страница за грешка 412 Precondition Failed е сравнително лесно както с уеб сървърите "Apache", така и с "NGINX".

Apache Webserver

Уеб сървърът "Apache" е един от най-разпространените уеб сървъри в интернет. За да създадете своя собствена страница за грешка 412 Precondition Failed в "Apache", трябва да се направи следната промяна в следния файл.

File: .htaccess
ErrorDocument 412 /errors/412.html

NGINX Webserver

Подобно на уеб сървъра "Apache", "NGINX" също се използва широко в интернет. За да създадете своя собствена страница за грешка 412 Precondition Failed в "NGINX", трябва да се направи следната промяна в следния файл.

File: sites-enabled/default
error_page 412 /412.html;
location = /412.html {
    root /usr/share/nginx/html;
    internal;
}

Съвместимост на кода на състоянието 412 с браузъра

Chrome no data
Edge no data
Firefox no data
Opera no data
Safari no data
Chrome Android no data
Firefox for Android no data
Opera Android no data
Safari on iOS no data
Internet no data
WebView Android no data

Константи в езиците за програмиране

HttpStatusCode.PreconditionFailed
http.StatusPreconditionFailed
Response::HTTP_PRECONDITION_FAILED
httplib.PRECONDITION_FAILED
http.client.PRECONDITION_FAILED
http.HTTPStatus.PRECONDITION_FAILED
:precondition_failed

Кодове на подсъстоянието на код 412

Кодовете за подсъстояние са чисто технически и никога не трябва да се изпращат на потребителя. Например, ако бъде хвърлен код на състоянието 412.1, той може да бъде регистриран, но код на състоянието 412 ще бъде изпратен на потребителя.:
412.0 Precondition failed
HTTP IIS, Неофициален
Автор: Tony Brüser
Автор: Tony Brüser

Тони Брусер е ентусиазиран уеб разработчик със склонност към HTTP кодовете за състояние.

LinkedInGitHub