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.
HTTP-protokolla
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:
URL: https://http-statuscode.com/errorCodeExample.php?code=409
Tila: 409 Conflict
Nuo: Network
IP-osoite: XX.XX.XX.XX
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?
Apache Webserver
Verkkopalvelin "Apache" on yksi Internetin yleisimmistä verkkopalvelimista. Jotta voit luoda oman 409 Conflict-virhesivun "Apachessa", seuraavaan tiedostoon on tehtävä seuraava muutos.
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.
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