409

Conflict

Официален
Съществува конфликт в текущото състояние на Ressouce

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

Код на състоянието 409 Conflict показва, че заявката не може да бъде изпълнена поради конфликт с текущото състояние на целевия ресурс. Този код се използва в ситуации, в които потребителят може да успее да разреши конфликта и да изпрати отново заявката. Сървърът е ДЛЪЖЕН да генерира полезен товар, който включва достатъчно информация, за да може потребителят да разпознае източника на конфликта.

Конфликти е най-вероятно да възникнат в отговор на заявка PUT. Например, ако се използва определяне на версиите и представянето, което се PUT, включва промени в ресурса, които са в конфликт с тези, направени от по-ранна заявка (на трета страна), сървърът на произхода може да използва отговор 409 Conflict, за да посочи, че не може да изпълни заявката. В този случай представянето в отговора вероятно ще съдържа информация, полезна за обединяване на различията въз основа на историята на ревизиите.

Източник / Цитат от: Кодът на състоянието 409 Conflict на HTTP е определен в раздел 6.5.8 на RFC7231.

Как да изхвърлим код на състоянието 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. След това потребителят ще види следния резултат:

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

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

Код за състояние на конфликт 409 Conflict показва, че заявката, изпратена от клиента, е в конфликт с текущото състояние на целевия ресурс. Това може да се случи, например, когато двама клиенти се опитват да актуализират един и същ ресурс по едно и също време.

Причини за статус код 409 Conflict Conflict

  • Едновременни актуализации: Както беше споменато по-рано, честа причина за статус код 409 Conflict са опитите на няколко клиента да модифицират ресурса по едно и също време.
  • Несъвместими данни: Ако клиентът изпрати данни, които не отговарят на очакваното форматиране или правилата за валидиране на сървъра, може да бъде върнат код на състоянието 409 Conflict.
  • Логически конфликти: Дори когато данните са форматирани правилно, могат да възникнат логически конфликти. Пример за това може да бъде система за резервации, в която двама души се опитват да резервират едно и също място по едно и също време.

Стъпки за разрешаване на статус код 409 Conflict Конфликт:

  • Видификация на данните: Уверете се, че данните, изпратени от клиента, са правилно форматирани и последователни. Проверете правилата за валидиране, предоставени от сървъра, и съответно коригирайте заявката си.
  • Въвеждане на механизми за заключване: За системи, в които има възможност за едновременни актуализации, може да е полезен механизъм за заключване. Това не позволява на повече от един потребител да прави промени в даден ресурс едновременно.
  • Изпълнение на контрол на версиите: Чрез маркиране на всяко състояние на ресурса с версия, клиентите могат да гарантират, че винаги работят с най-новата версия.
  • Отговор към потребителя: Когато възникне конфликт 409 Conflict, клиентът трябва да бъде информиран с ясно и разбираемо съобщение за грешка, така че да знае как да действа.
  • Преглед на сървърните дневници: Често сървърните логове съдържат допълнителна информация за причината за конфликта. Претърсването на тези дневници може да хвърли светлина върху това какъв точно е проблемът.
  • Логика на повторното изпращане: В някои случаи може да е полезно автоматично да се изпрати отново заявката, особено ако конфликтът е причинен от краткосрочни условия, които могат да се променят бързо.
.

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

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

Apache Webserver

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

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

NGINX Webserver

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

File: sites-enabled/default
error_page 409 /409.html;
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
Автор: Tony Brüser
Автор: Tony Brüser

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

LinkedInGitHub