409

Conflict

Officiell
Det fanns en konflikt i Ressouces nuvarande tillstånd.

Specifikation av HTTP-statuskoden 409

Statuskoden 409 Conflict anger att begäran inte kunde slutföras på grund av en konflikt med målresursens aktuella tillstånd. Denna kod används i situationer där användaren kan lösa konflikten och skicka in begäran på nytt. Servern SKA generera en nyttolast som innehåller tillräckligt med information för att en användare ska kunna känna igen källan till konflikten.

Konflikter är mest sannolika att uppstå som svar på en PUT-förfrågan. Om versionshantering används och den representation som PUT:erna innehåller ändringar av en resurs som står i konflikt med de ändringar som gjorts i en tidigare begäran (från en tredje part), kan ursprungsservern använda ett 409 Conflict-svar för att ange att den inte kan slutföra begäran. I det här fallet skulle svarsrepresentationen troligen innehålla information som är användbar för att slå samman skillnaderna baserat på revisionshistoriken.

Källa / Citat från: HTTP-statuskoden 409 Conflict anges i avsnitt 6.5.8 i RFC7231.

Hur skickar man en 409-statuskod med PHP?

För att kasta HTTP-statuskoden 409 på en webbsida kan PHP-funktionen http_response_code användas. Syntaxen är följande: http_response_code(409) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Testa HTTP-statuskoden 409

För att kunna visa HTTP-statuskoden (i det här fallet 409 Conflict) och annan information på klientsidan måste utvecklingskonsolen öppnas med F12. Navigera sedan till fliken "Network" (nätverk). Nu kan sidan öppnas, webbplatsen (exempel index.php) ska vara synlig i fliken nätverk. Denna måste väljas och sedan måste avsnittet Herder väljas. Användaren kommer då att se följande resultat:

Statuskod 409 Conflict
Översikt
URL: https://http-statuscode.com/errorCodeExample.php?code=409
Status: 409 Conflict
Dessa: Network
IP-adress: XX.XX.XX.XX
Statuskod 409 Conflict

Hur löser jag problemet med statuskoden 409?

Conflict Status Code 409 Conflict anger att den begäran som skickas av klienten är i konflikt med målresursens aktuella tillstånd. Detta kan till exempel hända när två klienter försöker uppdatera samma resurs samtidigt.

Årsaker till statuskod för konflikt 409 Conflict

  • Samtidiga uppdateringar: Som tidigare nämnts är en vanlig orsak till en statuskod 409 Conflict att flera klienter försöker ändra en resurs samtidigt.
  • Inkonsistenta data: Om en klient skickar data som inte överensstämmer med serverns förväntade formaterings- eller valideringsregler kan en 409 Conflict-statuskod returneras.
  • Logiska konflikter: Även när data är korrekt formaterade kan logiska konflikter uppstå. Ett exempel är ett bokningssystem där två personer försöker boka samma plats samtidigt.

Steg för att lösa statuskoden 409 Conflict Conflict:

  • Validering av data: Se till att de data som skickas av klienten är korrekt formaterade och konsekventa. Kontrollera de valideringsregler som servern tillhandahåller och justera din begäran därefter.
  • Implementera låsmekanismer: För system där det finns möjlighet till samtidiga uppdateringar kan en låsmekanism vara användbar. Detta förhindrar att mer än en användare kan göra ändringar i en resurs samtidigt.
  • Implementera versionskontroller: Genom att markera varje tillstånd i en resurs med en version kan klienter säkerställa att de alltid arbetar med den senaste versionen.
  • Tillbaka till användaren: När en 409 Conflict-konflikt uppstår bör klienten informeras med ett tydligt och begripligt felmeddelande så att de vet hur de ska gå vidare.
  • Granska serverloggar: Serverloggar innehåller ofta ytterligare information om orsaken till konflikten. Att söka i dessa loggar kan kasta ljus över exakt vad problemet är.
  • Returlogik: I vissa fall kan det vara användbart att automatiskt skicka begäran igen, särskilt om konflikten orsakas av kortsiktiga förhållanden som snabbt kan förändras.
.

Så här skapar du en egen felsida för statuskoden 409

Det är relativt enkelt att skapa en egen 409 Conflict-felsida med både Apache- och NGINX-webbservrarna.

Apache Webserver

Webbservern "Apache" är en av de vanligaste webbservrarna på Internet. För att skapa en egen 409 Conflict-felsida i "Apache" måste följande ändring göras i följande fil.

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

NGINX Webserver

I likhet med webbservern Apache används NGINX i stor utsträckning på Internet. För att skapa en egen 409 Conflict-felsida i "NGINX" måste följande ändring göras i följande fil.

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

Webbläsarnas kompatibilitet med statuskoden 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

Konstanter i programmeringsspråk

HttpStatusCode.Conflict
http.StatusConflict
Response::HTTP_CONFLICT
httplib.CONFLICT
http.client.CONFLICT
http.HTTPStatus.CONFLICT
:conflict

Underhållande memes om HTTP-statuskoden 409

Författare: Tony Brüser
Författare: Tony Brüser

Tony Brüser är en entusiastisk webbutvecklare med en förkärlek för HTTP-statuskoder.

LinkedInGitHub