409

Conflict

Officieel
Er was een conflict in de huidige staat van de Ressouce

Specificatie van de HTTP-statuscode 409

De statuscode 409 Conflict geeft aan dat het verzoek niet kon worden voltooid wegens een conflict met de huidige status van de doelbron. Deze code wordt gebruikt in situaties waarin de gebruiker het conflict kan oplossen en het verzoek opnieuw kan indienen. De server ZOU een payload moeten genereren die voldoende informatie bevat voor een gebruiker om de bron van het conflict te herkennen.

Conflicten komen waarschijnlijk het meest voor als reactie op een PUT-verzoek. Als bijvoorbeeld versiebeheer wordt gebruikt en de PUT-representatie wijzigingen aan een bron bevat die in strijd zijn met die van een eerder verzoek (van een derde partij), kan de origin server een 409 Conflict-antwoord gebruiken om aan te geven dat het verzoek niet kan worden voltooid. In dit geval zou de antwoordrepresentatie waarschijnlijk informatie bevatten die nuttig is voor het samenvoegen van de verschillen op basis van de revisiegeschiedenis.

Bron / Citaat van: De 409 Conflict HTTP-statuscode wordt gespecificeerd door sectie 6.5.8 van RFC7231.

Hoe gooi je een 409-statuscode met PHP?

Om de HTTP-statuscode 409 op een webpagina te gooien, kan de PHP-functie http_response_code worden gebruikt. De syntaxis is als volgt: http_response_code(409) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Test de HTTP-statuscode 409

Om de HTTP-statuscode (in dit geval 409 Conflict) en andere informatie aan de clientzijde te kunnen weergeven, moet de ontwikkelconsole worden geopend met F12. Navigeer vervolgens naar het tabblad "Netwerk". Nu kan de pagina worden geopend, de website (voorbeeld index.php) moet zichtbaar zijn in het netwerk tabblad. Deze moet worden geselecteerd en vervolgens moet het onderdeel Herder worden geselecteerd. De gebruiker ziet dan het volgende resultaat:

Statuscode 409 Conflict
Overzicht
URL: https://http-statuscode.com/errorCodeExample.php?code=409
Status: 409 Conflict
Die: Network
IP-adres: XX.XX.XX.XX
Statuscode 409 Conflict

Hoe los ik het probleem met de 409-statuscode op?

De 409 Conflict Conflictstatuscode geeft aan dat het verzoek van de client in conflict is met de huidige status van de doelbron. Dit kan bijvoorbeeld gebeuren wanneer twee clients tegelijkertijd dezelfde bron proberen bij te werken.

Oorzaken van de 409 Conflict Conflictstatuscode

  • Simultane updates: Zoals eerder vermeld, is een veelvoorkomende oorzaak van een 409 Conflict statuscode dat meerdere clients tegelijkertijd een bron proberen te wijzigen.
  • Inconsistente gegevens: Als een client gegevens verzendt die niet voldoen aan de verwachte opmaak- of validatieregels van de server, kan een 409 Conflict-statuscode worden geretourneerd.
  • Logische conflicten: Zelfs als gegevens correct zijn opgemaakt, kunnen er logische conflicten optreden.

Stappen om de statuscode 409 Conflict Conflict op te lossen:

  • Gegevensvalidatie: Controleer of de door de client verzonden gegevens correct zijn opgemaakt en consistent zijn. Controleer de validatieregels die door de server worden geleverd en pas uw verzoek dienovereenkomstig aan.
  • Implementeer vergrendelingsmechanismen: Voor systemen waarbij de mogelijkheid bestaat van gelijktijdige updates, kan een vergrendelingsmechanisme nuttig zijn. Hiermee wordt voorkomen dat meer dan één gebruiker tegelijkertijd wijzigingen aanbrengt in een bron.
  • Implementeer versiebeheer: Door elke status van een resource te markeren met een versie, kunnen clients ervoor zorgen dat ze altijd met de meest recente versie werken.
  • Terugkoppeling naar de gebruiker: Als er een 409 Conflict-conflict optreedt, moet de client hierover worden geïnformeerd met een duidelijke en begrijpelijke foutmelding, zodat hij weet hoe hij verder moet.
  • Serverlogboeken bekijken: Vaak bevatten serverlogboeken aanvullende informatie over de oorzaak van het conflict. Het doorzoeken van deze logboeken kan duidelijkheid verschaffen over wat het probleem precies is.
  • Retisatielogica: In sommige gevallen kan het nuttig zijn om het verzoek automatisch opnieuw te verzenden, vooral als het conflict wordt veroorzaakt door kortetermijnomstandigheden die snel kunnen veranderen.
.

Hoe maak je je eigen foutpagina voor de statuscode 409?

Uw eigen 409 Conflict-foutpagina maken is relatief eenvoudig met zowel de "Apache" als de "NGINX" webservers.

Apache Webserver

De webserver "Apache" is een van de meest gebruikte webservers op het internet. Om uw eigen 409 Conflict-foutpagina in "Apache" te maken, moet de volgende wijziging worden aangebracht in het volgende bestand.

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

NGINX Webserver

Net als de webserver "Apache" wordt ook "NGINX" veel gebruikt op het internet. Om uw eigen 409 Conflict-foutpagina in "NGINX" te maken, moet de volgende wijziging worden aangebracht in het volgende bestand.

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

Browsercompatibiliteit van de 409-statuscode

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

Constanten in programmeertalen

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

Vermakelijke memes over de HTTP-statuscode 409

Auteur: Tony Brüser
Auteur: Tony Brüser

Tony Brüser is een enthousiaste webontwikkelaar met een voorliefde voor HTTP-statuscodes.

LinkedInGitHub