409
Conflict
Спецификация на HTTP код на състоянието 409
Код на състоянието 409 Conflict показва, че заявката не може да бъде изпълнена поради конфликт с текущото състояние на целевия ресурс. Този код се използва в ситуации, в които потребителят може да успее да разреши конфликта и да изпрати отново заявката. Сървърът е ДЛЪЖЕН да генерира полезен товар, който включва достатъчно информация, за да може потребителят да разпознае източника на конфликта.
Конфликти е най-вероятно да възникнат в отговор на заявка PUT. Например, ако се използва определяне на версиите и представянето, което се PUT, включва промени в ресурса, които са в конфликт с тези, направени от по-ранна заявка (на трета страна), сървърът на произхода може да използва отговор 409 Conflict, за да посочи, че не може да изпълни заявката. В този случай представянето в отговора вероятно ще съдържа информация, полезна за обединяване на различията въз основа на историята на ревизиите.
Източник / Цитат от: Кодът на състоянието 409 Conflict на HTTP е определен в раздел 6.5.8 на RFC7231.
Протокол HTTP
Как да изхвърлим код на състоянието 409 с PHP?
За изхвърляне на HTTP статус код 409 на уеб страница може да се използва функцията http_response_code на PHP. Синтаксисът е следният: http_response_code(409) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Тестване на код 409 на състоянието HTTP
За да можете да показвате кода на състоянието на HTTP (в този случай 409 Conflict) и друга информация от страна на клиента, конзолата за разработка трябва да се отвори с F12. След това преминете към раздела "Мрежа". Сега страницата може да бъде отворена, като уебсайтът (пример index.php) трябва да се вижда в раздела "Мрежа". Той трябва да бъде избран и след това трябва да се избере разделът Herder. След това потребителят ще види следния резултат:
URL: https://http-statuscode.com/errorCodeExample.php?code=409
Статус: 409 Conflict
Тези: Network
IP адрес: XX.XX.XX.XX
Как да разреша проблема със статус код 409?
Код за състояние на конфликт 409 Conflict показва, че заявката, изпратена от клиента, е в конфликт с текущото състояние на целевия ресурс. Това може да се случи, например, когато двама клиенти се опитват да актуализират един и същ ресурс по едно и също време.
Причини за статус код 409 Conflict Conflict
- Едновременни актуализации: Както беше споменато по-рано, честа причина за статус код 409 Conflict са опитите на няколко клиента да модифицират ресурса по едно и също време.
- Несъвместими данни: Ако клиентът изпрати данни, които не отговарят на очакваното форматиране или правилата за валидиране на сървъра, може да бъде върнат код на състоянието 409 Conflict.
- Логически конфликти: Дори когато данните са форматирани правилно, могат да възникнат логически конфликти. Пример за това може да бъде система за резервации, в която двама души се опитват да резервират едно и също място по едно и също време.
Стъпки за разрешаване на статус код 409 Conflict Конфликт:
- Видификация на данните: Уверете се, че данните, изпратени от клиента, са правилно форматирани и последователни. Проверете правилата за валидиране, предоставени от сървъра, и съответно коригирайте заявката си.
- Въвеждане на механизми за заключване: За системи, в които има възможност за едновременни актуализации, може да е полезен механизъм за заключване. Това не позволява на повече от един потребител да прави промени в даден ресурс едновременно.
- Изпълнение на контрол на версиите: Чрез маркиране на всяко състояние на ресурса с версия, клиентите могат да гарантират, че винаги работят с най-новата версия.
- Отговор към потребителя: Когато възникне конфликт 409 Conflict, клиентът трябва да бъде информиран с ясно и разбираемо съобщение за грешка, така че да знае как да действа.
- Преглед на сървърните дневници: Често сървърните логове съдържат допълнителна информация за причината за конфликта. Претърсването на тези дневници може да хвърли светлина върху това какъв точно е проблемът.
- Логика на повторното изпращане: В някои случаи може да е полезно автоматично да се изпрати отново заявката, особено ако конфликтът е причинен от краткосрочни условия, които могат да се променят бързо.
Как да създадете собствена страница за грешка с код на състоянието 409
Apache Webserver
Уеб сървърът "Apache" е един от най-разпространените уеб сървъри в интернет. За да създадете своя собствена страница за грешка 409 Conflict в "Apache", трябва да се направи следната промяна в следния файл.
NGINX Webserver
Подобно на уеб сървъра "Apache", "NGINX" също се използва широко в интернет. За да създадете своя собствена страница за грешка 409 Conflict в "NGINX", трябва да се направи следната промяна в следния файл.
location = /409.html {
root /usr/share/nginx/html;
internal;
}
Съвместимост на кода на състоянието 409 с браузъра
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.Conflict
http.StatusConflict
Response::HTTP_CONFLICT
httplib.CONFLICT
http.client.CONFLICT
http.HTTPStatus.CONFLICT
:conflict