Žiniatinklio kūrimo pasaulyje HTTP klaidų kodai vaidina labai svarbų vaidmenį darydami įtaką naudotojų patirčiai ir svetainės reputacijai. Šiame straipsnyje apžvelgsime visą serverio klaidų kodų sąrašą, išanalizuosime jų reikšmes ir sužinosime, kaip efektyviai interpretuoti serverio atsakymų kodus, kad būtų išspręstos problemos ir optimizuotas žiniatinklio programų veikimas.
Kas yra HTTP atsako kodas
HTTP atsako kodas yra žiniatinklio serverių kalba, kuri naršyklės užklausas paverčia suprantamomis instrukcijomis. Tai tarsi poetas, atsakantis į virtualius klausimus, suteikiantis jiems prasmę ir kryptį. Atsakymo kodai ne visada yra HTTP klaidų kodai. Pavyzdžiui, „200 OK“ reiškia, kad viskas gerai, bet HTTP klaida „404 nerasta“ reiškia, kad puslapis pametamas virtualioje erdvėje. Kiekvienas kodas yra unikali serverio būsenos išraiška, kurios dekodavimas leidžia suprasti, kas vyksta kitoje virtualaus pasaulio pusėje.
1xx kodai (informacija)
1xx būsenos kodai HTTP protokole yra tam tikra pirmoji sąsaja dialoge tarp serverio ir kliento. Užuot pateikę išsamų atsakymą į užklausą, jie pateikia informaciją apie esamą būseną, todėl duomenų mainai tampa efektyvesni. Pažvelkime į juos atidžiau:
100 „Continue“ . HTTP atsakymo kodas, kuriuo serveris patvirtina vartotojui, kad jis galėtų saugiai tęsti didelės apimties užklausos siuntimą.
101 Protokolų perjungimas . Serveris praneša klientui, kad keičia žaidimo taisykles, pavyzdžiui, pereina nuo HTTP prie saugesnio HTTPS. Šiuo atveju protokolo pakeitimui naudojama antraštė „Upgrade“.
102 Apdorojama . Šis kodas yra tarsi pranešimas, kad serveris priėmė užklausą, bet vis dar užsiėmęs sudėtinga operacija.
103 Ankstyvieji patarimai . Čia serveris prieš pagrindinį atsakymą siunčia klientui keletą orientacinių antraščių, įspėdamas apie tai, kas gali būti svarbu artimiausioje ateityje.
2xx kodas (sėkmingai)
HTTP klaidų kodai grupėje 2xx rodo sėkmingą užklausą iš serverio. Jie iš esmės veikia kaip „žalioji šviesa“ interneto komunikacijos srityje, patvirtinanti, kad viskas vyksta pagal planą ir sėkmingai baigta.
200 Gerai . Ši būsena naudojama, kai serveris be problemų apdoroja užklausą GET metodu ir atsako į užklausą grąžina prašomus duomenis. Antraštė „Content-Type“ nurodo atsakyme nurodytą turinio tipą. Ji tiesiog informuoja klientą, kad užklausa buvo sėkminga.
201 Sukurta . Čia serveris praneša apie naujo ištekliaus sukūrimą.
202 Priimta . Serveris praneša vartotojui, kad užklausa buvo priimta, tačiau atsakymas užtruks.
203 Neautoritetinga informacija . Šis kodas suteikia klientui duomenis, kurie gali būti neoficialūs, bet gali būti naudojami palyginimui.
204 Nėra turinio . Serveris apdorojo užklausą, bet negrąžina jokio papildomo turinio.
205 „Atkurti turinį“ . Čia klientui nurodoma iš naujo nustatyti dabartinį rodinį arba duomenis po išsiuntimo.
206 Dalinis turinys . Šis atvejis rodo, kad atsakyme yra tik dalis prašomo turinio. Antraštė „Content-Range“ nurodo dalinį turinio diapazoną.
207 Kelių būsenų. Serveris sėkmingai įvykdė kelių operacijų užklausą iš kliento, o atsakyme pateikiama informacija apie kiekvienos operacijos būseną.
226 Naudotas IM . Šis kodas rodo, kad serveris naudojo prieauginių metaduomenų (IM) metodą ir atsakė klientui perduodamas tik modifikuotas išteklių dalis.
3xx kodai (peradresavimai)
3xx kodai HTTP protokole yra tarsi rodyklės, nukreipiančios vartotoją į naują išteklių vietą. Jie informuoja klientą, kad reikia imtis tolesnių veiksmų, kad gautų prašomą turinį arba būtų peradresuotas į kitą šaltinį. Pasinerkime į kiekvieno iš jų detales:
300 Keli pasirinkimai . Klientas gauna signalą, kad ištekliui yra kelios galimos vietos, ir jam pateikiamas pasirinkimas. Esamomis aplinkybėmis antraštė „Vieta“ gali nurodyti alternatyvias ištekliaus parinktis.
301 Perkelta visam laikui. Serveris praneša vartotojui, kad išteklius buvo visam laikui perkeltas į kitą vietą.
302 Rasta . Šis HTTP kodas panašus į laikiną peradresavimą. Serveris informuoja vartotoją, kad išteklius laikinai pasiekiamas kitu URL adresu. Antraštė „Vieta“ nurodo į naują laikino peradresavimo URL adresą.
303 Žr. kitą . Klientui pranešama, kad išteklius pasiekiamas kitu URL adresu ir jis turi pateikti GET užklausą šiuo nauju adresu.
304 Nepakeista . Ši būsena klientui nurodo, kad išteklius nepasikeitė nuo paskutinės užklausos ir jo nereikia atsisiųsti iš naujo. Pateikiant užklausą, antraštė „If-Modified-Since“ naudojama norint patikrinti, ar išteklius buvo modifikuotas.
305 Naudoti tarpinį serverį. Atsakydamas serveris praneša, kad norint pasiekti prašomą išteklių, jis turėtų naudoti nurodytą tarpinį serverį.
306 (rezervuotas) – kodas buvo rezervuotas, bet iš tikrųjų jis nenaudojamas.
307 Laikinas peradresavimas . Šis kodas panašus į 302 Found, tačiau reikalauja, kad klientas liktų tame pačiame užklausos metode, kuris buvo naudojamas pradinėje užklausoje.
308 Nuolatinis peradresavimas . Nurodo, kad išteklius buvo visam laikui perkeltas į naują URI ir klientas turėtų naudoti naują URI visoms būsimoms užklausoms.
4xx HTTP klaida (kliento klaidos)
HTTP 4xx klaidų kodai rodo kliento klaidas. Tai reiškia, kad problema yra vartotojo pusėje, pvz., žiniatinklio naršyklėje ar programoje.
400 Netinkama užklausa . Serveris negali apdoroti užklausos dėl sintaksės klaidų, negaliojančių duomenų ar kitų klaidų kliento pusėje.
401 Neautorizuota. Serveris negali apdoroti užklausos dėl sintaksės klaidų, negaliojančių duomenų ar kitų klaidų kliento pusėje.
402 Būtinas mokėjimas . Kodas šiuo metu neaktyvus ir rezervuotas būsimam naudojimui. Tai gali reikšti, kad ateityje norint pasiekti išteklių reikės sumokėti.
HTTP klaida 403 Draudžiama. Klientas neturi pakankamai teisių pasiekti prašomo ištekliaus.
404 Nerasta. Prašomo resurso serveryje nėra. Tai viena iš dažniausiai pasitaikančių naudotojų klaidų.
405 Metodas neleistinas . Serveris nepalaiko nurodyto užklausos metodo šiame ištekliuje. Antraštė „Allow“ nurodo leidžiamus ištekliaus metodus. Naudojant šį kodą,
406 Nepriimtina. Serveris negali pateikti duomenų klientui priimtinu formatu.
407 Reikalingas tarpinio serverio autentifikavimas . Norint pasiekti prašomą išteklių, reikalingas autentifikavimas tarpiniame serveryje.
408 Užklausos skirtasis laikas . Serveris laukė kliento užklausos, bet baigėsi skirtasis laikas. Antraštė „Retry-After“ gali nurodyti laiką, po kurio užklausą galima bandyti dar kartą.
409 Konfliktas. Užklausos negalima įvykdyti dėl konflikto su dabartine ištekliaus būsena.
410 Dingęs . Prašomas išteklius anksčiau egzistavo, bet dabar buvo ištrintas ir jo atkūrimo nesitikima.
411 Reikalingas ilgis . Serveris reikalauja nurodyti užklausos turinio ilgį; šios informacijos nebuvimas laikomas klaida.
412 Neįvykdyta išankstinė sąlyga . Užklausoje nėra įvykdyta išankstinė sąlyga, todėl ji negali būti įvykdyta.
413 Per didelė apkrova . Užklausos duomenų dydis viršija serverio apribojimus.
414 URI per ilgas . URI ilgis užklausoje viršija priimtinas ribas.
415 Nepalaikomas medijos tipas . Serveris negali apdoroti užklausoje nurodyto duomenų tipo.
416 Diapazonas netenkinamas . HTTP klaida, kai prašomas diapazonas neatitinka dabartinių serverio duomenų.
417 Laukta sąlyga neįvykdyta . Laukta sąlyga antraštėje „Laukiama“ nebuvo įvykdyta.
418 „Aš esu arbatinukas“ . Šis kodas įtrauktas kaip pokštas ir nereiškia jokių realių veiksmų nei vartotojui, nei serveriui, ir tai nėra tikra klaida. Tai rodo, kad serveris yra arbatinukas ir negali virti kavos.
421 Neteisingai nukreipta užklausa . Serveris neapdoroja užklausos dėl klaidos užklausoje arba serverio konfigūracijoje.
422 Neapdorojamas objektas . Serveris supranta užklausą, bet jos neapdoroja dėl duomenų klaidų.
423 Užrakinta. Išteklius užblokuotas ir negali būti apdorotas.
424 Nepavykusi priklausomybė . Užklausa priklauso nuo kitos neįvykdytos užklausos.
425 Per anksti. Serveris nėra pasiruošęs apdoroti užklausos dėl jos ankstyvo atėjimo.
426 Reikalingas atnaujinimas . Serveriui reikia naudoti pažangesnį protokolą užklausai apdoroti.
428 Būtina išankstinė sąlyga . Serveris reikalauja, kad užklausoje būtų nurodytos tam tikros išankstinės sąlygos.
429 Per daug užklausų . Klientas per trumpą laiką išsiuntė per daug užklausų, viršydamas serverio apribojimus.
431 Užklausos antraštės laukai per dideli . Užklausos antraštės viršija maksimalų leistiną dydį.
449 Bandykite dar kartą su. Nurodo, kad dabartinis serveris negali vykdyti užklausos, bet ją gali sėkmingai apdoroti kitas serveris, ir klientas turėtų bandyti dar kartą su nauju URI.
451 Nepasiekiamas dėl teisinių priežasčių . Išteklius nepasiekiamas dėl teisinių priežasčių.
499 Kliento užklausa uždaryta . Serveris gavo užklausą, bet klientas nutraukė ryšį prieš užbaigdamas apdorojimą.
HTTP 5xx klaida (serverio klaidos)
HTTP 5xx klaidų kodai rodo serverio problemas. Šie kodai rodo serverio pusėje iškilusias problemas, todėl serveris negali tinkamai apdoroti vartotojo užklausos. Pažvelkime į juos atidžiau:
HTTP klaida 500 – vidinė serverio klaida . Serveris susiduria su netikėtomis aplinkybėmis, kurios neleidžia jam užbaigti užklausos. Antraštė „Serveris“ gali nurodyti serverį, kuriame įvyko klaida.
501 Neįdiegta . Serveris nepalaiko funkcijos, reikalingos kliento užklausai apdoroti. Antraštė „Via“ gali nurodyti tarpinį serverį, per kurį įvyko klaida.
502 Neteisingas šliuzas . Šis kodas reiškia, kad serveris, veikiantis kaip tarpinis serveris, gavo neteisingą atsakymą iš kito serverio.
HTTP klaida 503. Paslauga nepasiekiama . Serveris laikinai negali apdoroti užklausų.
504 Šliuzo skirtasis laikas . Serveris, veikiantis kaip tarpinis serveris, laiku negavo atsakymo iš kito serverio.
505 HTTP versija nepalaikoma . Serveris nepalaiko užklausoje nurodytos HTTP protokolo versijos. Kaip atsarginė parinktis, antraštė „Atnaujinti“ gali nurodyti palaikomus protokolus.
506 Variantas taip pat derasi . Ši būsena nenaudojama HTTP/1.1; tačiau jei serveris aptinka vidinę konfigūraciją, dėl kurios kyla turinio derybų neaiškumų, jis gali naudoti šį atsakymą.
507 Nepakanka saugyklos vietos . Serveris negali įvykdyti užklausos, nes jame nepakanka saugyklos vietos.
508 Aptiktas ciklas . Serveris aptiko ciklą apdorodamas užklausą ir atsisako ją įvykdyti, kad išvengtų begalinio ciklo.
509 Viršytas pralaidumo limitas . Klaida įvyksta, kai dėl didelio užklausų ar srauto kiekio viršijamas serverio pralaidumas.
510 Nepratęstas . Norėdamas tęsti užklausą, klientas turi perkelti papildomus plėtinius.
511 Reikalingas tinklo autentifikavimas . Norėdamas prisijungti prie tinklo, klientas turi pats save autentifikuoti.
Kaip patikrinti puslapio būsenos kodą
Šiame skyriuje apžvelgsime tris pagrindinius puslapio būsenos kodo tikrinimo būdus: naudojant komandinę eilutę, naudojant žiniatinklio naršyklę ir naudojant nepriklausomas internetines paslaugas. Kiekvienas iš šių metodų turi savų privalumų ir gali būti naudingas įvairiose situacijose.
Tikrinamas serverio atsakymas per komandinę eilutę
Komandinė eilutė yra patogus būdas patikrinti puslapio būsenos kodą nenaudojant žiniatinklio naršyklės. Šiam metodui reikia atidaryti komandų eilutę ir naudoti komandą:
curl -I http://page-address
Ši komanda siunčia HEAD užklausą (užklausą tik antraštėms) į nurodytą URL ir rodo informaciją, įskaitant HTTP būsenos kodą:
Aukščiau pateiktame pavyzdyje parodytas sėkmingas atsakymo kodas. Atsakyme, kuriame yra klaidos kodas, pvz., HTTP klaida 404 nerasta, rezultatas atrodys panašiai:
Serverio atsako tikrinimas per naršyklės konsolę
Žiniatinklio naršyklės kūrėjo pulte pateikiami įrankiai, skirti atlikti įvairias operacijas, įskaitant puslapio būsenos kodo patikrinimą. Norėdami pamatyti HTTP kodą serverio atsakyme, turite atidaryti kūrėjo konsolę (Ctrl+Shift+K) arba (Ctrl+Shift+J), priklausomai nuo naudojamos naršyklės. Tada pasirinkite skyrių „tinklas“ ir įkelkite norimą puslapį:
Serverio atsako tikrinimas naudojant nepriklausomus įrankius
Yra daug nepriklausomų internetinių paslaugų, kurios teikia įrankius svetainės puslapio būsenos kodui patikrinti. Šios paslaugos paprastai leidžia greitai gauti jūsų išteklių prieinamumo ir našumo apžvalgą. Visos jos veikia tuo pačiu principu. Kaip pavyzdį panagrinėsime populiariausią išteklių – httpsstatus.io.
Pirmiausia turite atidaryti pačią paslaugą, tada įveskite puslapio adresą, kurio atsakymą turite sužinoti, ir paprašykite patvirtinimo:
Rezultatas bus rodomas puslapio apačioje:
Išvada
Apibendrinant reikėtų pabrėžti, kad HTTP klaidų kodų supratimas ir gebėjimas juos skaityti yra pagrindiniai įgūdžiai kiekvienam, susijusiam su žiniatinklio kūrimu ir serverio priežiūra. Kai išsiaiškiname kiekvieną klaidą ir tyrinėjame įrankius joms aptikti, matome priežastis, kodėl taip svarbu efektyviai valdyti šiuos žiniatinklio paslaugų aspektus.