409

Conflict

Virallinen
Ressoucen nykytilanne oli ristiriitainen.

HTTP-tilakoodin 409 määrittely

Tilakoodi 409 Conflict osoittaa, että pyyntöä ei voitu suorittaa loppuun, koska se on ristiriidassa kohderesurssin nykyisen tilan kanssa. Tätä koodia käytetään tilanteissa, joissa käyttäjä voi ratkaista ristiriidan ja lähettää pyynnön uudelleen. Palvelimen PITÄÄ luoda hyötykuorma, joka sisältää riittävästi tietoa, jotta käyttäjä voi tunnistaa ristiriidan lähteen.

Ristiriitoja esiintyy todennäköisimmin vastauksena PUT-pyyntöön. Jos esimerkiksi versiointia käytettäisiin ja PUT-palvelimella lähetettävään esitykseen sisältyisi resurssiin muutoksia, jotka ovat ristiriidassa aikaisemman (kolmannen osapuolen) pyynnön aiheuttamien muutosten kanssa, alkuperäpalvelin voisi käyttää 409 Conflict-vastausta osoittaakseen, ettei se voi suorittaa pyyntöä loppuun. Tässä tapauksessa vastausesitys sisältäisi todennäköisesti tietoja, joista olisi hyötyä erojen yhdistämisessä versiohistorian perusteella.

Lähde / Lainaus: HTTP-tilakoodi 409 Conflict on määritelty 6.5.8:n RFC7231 kohdassa RFC7231.

Kuinka heittää 409-tilakoodi PHP:llä?

HTTP-tilakoodin 409 heittämiseen verkkosivulle voidaan käyttää PHP-funktiota http_response_code. Syntaksi on seuraava: http_response_code(409) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Testaa HTTP-tilakoodi 409

Jotta HTTP-tilakoodi (tässä tapauksessa 409 Conflict) ja muut tiedot voidaan näyttää asiakaspuolella, kehityskonsoli on avattava F12-näppäimellä. Siirry sitten "Network"-välilehdelle. Nyt sivu voidaan avata, verkkosivuston (esimerkki index.php) pitäisi näkyä verkko-välilehdellä. Tämä on valittava ja sen jälkeen on valittava Herder-osio. Käyttäjä näkee sitten seuraavan tuloksen:

Tilakoodi 409 Conflict
Yleiskatsaus
URL: https://http-statuscode.com/errorCodeExample.php?code=409
Tila: 409 Conflict
Nuo: Network
IP-osoite: XX.XX.XX.XX
Tilakoodi 409 Conflict

Miten ratkaisen 409-tilakoodiin liittyvän ongelman?

Konfliktin tilakoodi 409 Conflict osoittaa, että asiakkaan lähettämä pyyntö on ristiriidassa kohderesurssin nykyisen tilan kanssa. Näin voi tapahtua esimerkiksi silloin, kun kaksi asiakasta yrittää päivittää samaa resurssia samaan aikaan.

409 Conflict Conflict Status Code -tilakoodin syyt

  • Simultaaniset päivitykset: Kuten aiemmin mainittiin, 409 Conflict-tilakoodin yleisenä syynä on se, että useat asiakkaat yrittävät muuttaa resurssia samanaikaisesti.
  • Epäjohdonmukaiset tiedot: Jos asiakas lähettää tietoja, jotka eivät vastaa palvelimen odotettua muotoilua tai validointisääntöjä, 409 Conflict-tilakoodi voidaan palauttaa.
  • Loogiset ristiriidat: Vaikka tiedot olisi muotoiltu oikein, loogisia ristiriitoja voi esiintyä. Esimerkkinä voidaan mainita varausjärjestelmä, jossa kaksi henkilöä yrittää varata saman paikan samaan aikaan.

Vaiheet 409 Conflict Conflict -tilakoodin ratkaisemiseksi:

    • Datan validointi: Varmista, että asiakkaan lähettämät tiedot ovat oikein muotoiltuja ja yhdenmukaisia. Tarkista palvelimen tarjoamat validointisäännöt ja mukauta pyyntöä niiden mukaisesti.
    • Lukitusmekanismien käyttöönotto: Järjestelmissä, joissa on mahdollisuus samanaikaisiin päivityksiin, lukitusmekanismi voi olla hyödyllinen. Tämä estää useampaa kuin yhtä käyttäjää tekemästä muutoksia resurssiin samanaikaisesti.
    • Versiohallinnan käyttöönotto: Merkitsemällä resurssin jokainen tila versiolla, asiakkaat voivat varmistaa, että he työskentelevät aina uusimman version kanssa.
    • Palaute käyttäjälle: Kun 409 Conflict-ristiriita ilmenee, asiakkaalle on ilmoitettava selkeällä ja ymmärrettävällä virheilmoituksella, jotta hän tietää, miten toimia.
    • Palvelimen lokien tarkastelu: Usein palvelinlokeissa on lisätietoja konfliktin syystä. Näiden lokien tutkiminen voi valaista, mistä ongelma tarkalleen johtuu.
    • Vastauslogiikka: Joissakin tapauksissa voi olla hyödyllistä lähettää pyyntö automaattisesti uudelleen, varsinkin jos ristiriita johtuu lyhytaikaisista olosuhteista, jotka voivat muuttua nopeasti.
    .

Miten luoda oma virhesivu tilakoodille 409?

Oman 409 Conflict-virhesivun luominen on suhteellisen helppoa sekä Apache- että NGINX-verkkopalvelimilla.

Apache Webserver

Verkkopalvelin "Apache" on yksi Internetin yleisimmistä verkkopalvelimista. Jotta voit luoda oman 409 Conflict-virhesivun "Apachessa", seuraavaan tiedostoon on tehtävä seuraava muutos.

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

NGINX Webserver

Samanlainen kuin verkkopalvelin "Apache", "NGINX" on myös laajalti käytössä Internetissä. Jotta voit luoda oman 409 Conflict-virhesivun "NGINX"-palvelimessa, seuraavaan tiedostoon on tehtävä seuraava muutos.

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

Selainyhteensopivuus 409-tilakoodin kanssa

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

Vakiot ohjelmointikielissä

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

Viihdyttäviä meemejä HTTP-tilakoodista 409

Kirjoittaja: Tony Brüser
Kirjoittaja: Tony Brüser

Tony Brüser on innostunut web-kehittäjä, jolla on mieltymys HTTP-statuskoodeihin.

LinkedInGitHub