409
Conflict
HTTP būsenos kodo 409 specifikacija
Statuso kodas 409 Conflict rodo, kad užklausos nepavyko įvykdyti dėl konflikto su dabartine tikslinio ištekliaus būkle. Šis kodas naudojamas tais atvejais, kai naudotojas gali išspręsti konfliktą ir dar kartą pateikti užklausą. Serveris PRIVALO generuoti naudingąją apkrovą, kurioje būtų pakankamai informacijos, kad naudotojas galėtų atpažinti konflikto šaltinį.
Konfliktai dažniausiai kyla atsakant į PUT užklausą. Pavyzdžiui, jei būtų naudojamas versijų nustatymas ir į PUT pateikimą būtų įtraukti ištekliaus pakeitimai, prieštaraujantys ankstesnėje (trečiosios šalies) užklausoje padarytiems pakeitimams, kilmės serveris gali naudoti 409 Conflict atsakymą, kad negali įvykdyti užklausos. Tokiu atveju atsakymo atvaizde greičiausiai būtų pateikta informacija, naudinga skirtumams sujungti pagal peržiūrų istoriją.
Šaltinis / citata iš: HTTP būsenos kodas 409 Conflict nurodytas 6.5.8 skirsnyje 6.5.8.
HTTP protokolas
Kaip naudojant PHP išmesti 409 būsenos kodą?
Norint žiniatinklio puslapyje nurodyti HTTP būsenos kodą 409, galima naudoti PHP funkciją http_response_code. Sintaksė tokia: http_response_code(409) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
HTTP būsenos kodo 409 testavimas
Kad kliento pusėje būtų galima rodyti HTTP būsenos kodą (šiuo atveju 409 Conflict) ir kitą informaciją, kūrimo konsolę reikia atidaryti klavišu F12. Tada pereikite prie skirtuko "Network" (tinklas). Dabar galima atidaryti puslapį, tinklo skirtuke turi būti matoma svetainė (pavyzdys index.php). Ją reikia pasirinkti, o tada reikia pasirinkti skyrių Herder (Herderis). Tada naudotojas matys tokį rezultatą:
URL: https://http-statuscode.com/errorCodeExample.php?code=409
Statusas: 409 Conflict
Šie: Network
IP adresas: XX.XX.XX.XX
Kaip išspręsti 409 būsenos kodo problemą?
Konflikto būsenos kodas 409 Conflict rodo, kad kliento išsiųsta užklausa prieštarauja dabartinei tikslinio ištekliaus būsenai. Taip gali atsitikti, kai, pavyzdžiui, du klientai vienu metu bando atnaujinti tą patį išteklių.
Konflikto būsenos kodo 409 Conflict priežastys
- Vienalaikiai atnaujinimai: Kaip minėta anksčiau, dažna būsenos kodo 409 Conflict priežastis - keli klientai bando keisti išteklių vienu metu.
- Nesuderinti duomenys: Jei klientas siunčia duomenis, kurie neatitinka serverio numatyto formatavimo ar patvirtinimo taisyklių, gali būti grąžinamas 409 Conflict būsenos kodas.
- Loginiai konfliktai: Net jei duomenys suformatuoti teisingai, gali kilti loginių konfliktų. Pavyzdys galėtų būti rezervavimo sistema, kurioje du žmonės bando rezervuoti tą pačią vietą tuo pačiu metu.
- Duomenų patvirtinimas: Įsitikinkite, kad kliento siunčiami duomenys yra tinkamai suformatuoti ir nuoseklūs. Patikrinkite serverio pateiktas patvirtinimo taisykles ir atitinkamai pakoreguokite užklausą.
- Įdiegti užrakinimo mechanizmus: Sistemose, kuriose galimi lygiagretūs atnaujinimai, gali būti naudingas užrakinimo mechanizmas. Taip neleidžiama, kad vienu metu išteklių pakeitimus atliktų daugiau nei vienas naudotojas.
- Įdiegti versijų kontrolę: Pažymėjus kiekvieną ištekliaus būseną versija, klientai gali užtikrinti, kad visada dirba su naujausia versija.
- Atsiliepimas naudotojui: įvykus 409 Conflict konfliktui, klientas turėtų būti informuojamas aiškiu ir suprantamu klaidos pranešimu, kad žinotų, kaip elgtis.
- Serverio žurnalų peržiūra: Dažnai serverio žurnaluose pateikiama papildomos informacijos apie konflikto priežastį. Šių žurnalų paieška gali padėti tiksliai išsiaiškinti, kokia yra problema.
- Rezervavimo logika: Kai kuriais atvejais gali būti naudinga automatiškai iš naujo siųsti užklausą, ypač jei konfliktą sukėlė trumpalaikės sąlygos, kurios gali greitai pasikeisti.
Priemonės, kaip išspręsti 409 Conflict konflikto būsenos kodo problemą:
Kaip sukurti savo klaidų puslapį, kuriame būtų rodomas būsenos kodas 409
Apache Webserver
Interneto serveris "Apache" yra vienas iš labiausiai paplitusių interneto svetainių serverių. Norėdami sukurti savo 409 Conflict klaidos puslapį "Apache", šiame faile reikia atlikti toliau nurodytus pakeitimus.
NGINX Webserver
Panašiai kaip ir žiniatinklio serveris "Apache", "NGINX" taip pat plačiai naudojamas internete. Norėdami sukurti savo 409 Conflict klaidos puslapį "NGINX", šiame faile reikia atlikti toliau nurodytus pakeitimus.
location = /409.html {
root /usr/share/nginx/html;
internal;
}
409 būsenos kodo suderinamumas su naršyklėmis
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 |
Konstantos programavimo kalbose
HttpStatusCode.Conflict
http.StatusConflict
Response::HTTP_CONFLICT
httplib.CONFLICT
http.client.CONFLICT
http.HTTPStatus.CONFLICT
:conflict