409

Conflict

Offisiell
Det var en konflikt i den nåværende tilstanden til Ressouce

Spesifikasjon av HTTP-statuskoden 409

Statuskoden 409 Conflict indikerer at forespørselen ikke kunne fullføres på grunn av en konflikt med målressursens nåværende tilstand. Denne koden brukes i situasjoner der brukeren kan være i stand til å løse konflikten og sende forespørselen på nytt. Serveren BØR generere en nyttelast som inneholder nok informasjon til at en bruker kan gjenkjenne kilden til konflikten.

Det er mest sannsynlig at konflikter oppstår som svar på en PUT-forespørsel. For eksempel, hvis versjonering ble brukt og representasjonen som PUT inkluderte endringer i en ressurs som er i konflikt med de som ble gjort av en tidligere (tredjeparts) forespørsel, kan opprinnelsesserveren bruke et 409 Conflict-svar for å indikere at den ikke kan fullføre forespørselen. I dette tilfellet vil svarrepresentasjonen sannsynligvis inneholde informasjon som er nyttig for å slå sammen forskjellene basert på revisjonshistorikken.

Kilde / Sitat fra: 409 Conflict HTTP-statuskoden er spesifisert av seksjon 6.5.8 i RFC7231.

Hvordan kaste en 409-statuskode med PHP?

For å kaste HTTP-statuskoden 409 på en nettside kan PHP-funksjonen http_response_code brukes. Syntaksen er som følger: http_response_code(409) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Test 409 HTTP-statuskoden

For å kunne vise HTTP-statuskoden (i dette tilfellet 409 Conflict) og annen informasjon på klientsiden, må utviklingskonsollen åpnes med F12. Naviger deretter til fanen "Nettverk". Nå kan siden åpnes, nettstedet (eksempel index.php) skal være synlig i nettverksfanen. Dette må velges, og deretter må Herder-delen velges. Brukeren vil da se følgende resultat:

Statuskode 409 Conflict
Oversikt
URL: https://http-statuscode.com/errorCodeExample.php?code=409
Status: 409 Conflict
De: Network
IP-adresse: XX.XX.XX.XX
Statuskode 409 Conflict

Hvordan løser jeg problemet med 409-statuskoden?

Konfliktstatuskoden 409 Conflict indikerer at forespørselen som sendes av klienten, er i konflikt med målressursens nåværende tilstand. Dette kan for eksempel skje når to klienter forsøker å oppdatere den samme ressursen samtidig.

Årsaker til 409 Conflict-konfliktstatuskode

  • Samtidige oppdateringer: Som nevnt tidligere er en vanlig årsak til en 409 Conflict-statuskode at flere klienter forsøker å endre en ressurs samtidig.
  • Inkonsistente data: Hvis en klient sender data som ikke samsvarer med serverens forventede formaterings- eller valideringsregler, kan en 409 Conflict-statuskode returneres.
  • Logiske konflikter: Selv om data er formatert riktig, kan det oppstå logiske konflikter. Et eksempel kan være et reservasjonssystem der to personer prøver å bestille samme sete samtidig.

Tiltak for å løse statuskoden 409 Conflict Conflict:

  • Validering av data: Kontroller at dataene som sendes av klienten, er korrekt formatert og konsistente. Sjekk valideringsreglene fra serveren, og tilpass forespørselen deretter.
  • Implementer låsemekanismer: I systemer der det er mulighet for samtidige oppdateringer, kan en låsemekanisme være nyttig. Dette forhindrer at mer enn én bruker kan gjøre endringer i en ressurs samtidig.
  • Implementere versjonskontroller: Ved å merke hver tilstand av en ressurs med en versjon, kan klientene sikre at de alltid arbeider med den nyeste versjonen.
  • Tilbakemelding til brukeren: Når en 409 Conflict-konflikt oppstår, bør klienten informeres med en tydelig og forståelig feilmelding, slik at de vet hvordan de skal gå frem.
  • Gjennomgå serverlogger: Serverloggene inneholder ofte tilleggsinformasjon om årsaken til konflikten. Søk i disse loggene kan kaste lys over nøyaktig hva problemet er.
  • Returlogikk: I noen tilfeller kan det være nyttig å sende forespørselen på nytt automatisk, spesielt hvis konflikten skyldes kortsiktige forhold som kan endre seg raskt.
.

Slik oppretter du din egen feilside for statuskode 409

Det er relativt enkelt å lage din egen 409 Conflict-feilside med både "Apache" og "NGINX" webservere.

Apache Webserver

Webserveren "Apache" er en av de vanligste webserverne på Internett. For å lage din egen 409 Conflict-feilside i "Apache", må følgende endring gjøres i følgende fil.

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

NGINX Webserver

I likhet med webserveren "Apache" er "NGINX" også mye brukt på Internett. For å lage din egen 409 Conflict-feilside i "NGINX", må følgende endring gjøres i følgende fil.

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

Nettleserkompatibilitet for 409-statuskoden

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
Forfatter: Tony Brüser
Forfatter: Tony Brüser

Tony Brüser er en entusiastisk webutvikler med en forkjærlighet for HTTP-statuskoder.

LinkedInGitHub