409

Conflict

Oficialus
Dabartinėje Ressouce būklėje kilo konfliktas

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.

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ą:

Būsenos kodas 409 Conflict
Apžvalga
URL: https://http-statuscode.com/errorCodeExample.php?code=409
Statusas: 409 Conflict
Šie: Network
IP adresas: XX.XX.XX.XX
Būsenos kodas 409 Conflict

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.

    Priemonės, kaip išspręsti 409 Conflict konflikto būsenos kodo problemą:

    • 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.
    .

Kaip sukurti savo klaidų puslapį, kuriame būtų rodomas būsenos kodas 409

Sukurti savo 409 Conflict klaidos puslapį gana paprasta naudojant tiek "Apache", tiek "NGINX" žiniatinklio serverius.

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.

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

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.

File: sites-enabled/default
error_page 409 /409.html;
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

Išorinės nuorodos, kuriose pateikiama daugiau informacijos apie HTTP būsenos kodą 409:

Autorius: Tony Brüser
Autorius: Tony Brüser

Tony Brüseris yra entuziastingas žiniatinklio kūrėjas, mėgstantis HTTP būsenos kodus.

LinkedInGitHub