Tīmekļa izstrādes pasaulē HTTP kļūdu kodiem ir būtiska nozīme lietotāju pieredzes un vietnes reputācijas ietekmēšanā. Šajā rakstā mēs apskatīsim pilnu servera kļūdu kodu sarakstu, analizēsim to nozīmi un uzzināsim, kā efektīvi interpretēt servera atbildes kodus, lai atrisinātu problēmas un optimizētu tīmekļa lietotņu veiktspēju.
Kas ir HTTP atbildes kods
HTTP atbildes kods ir tīmekļa serveru valoda, kas pārvērš pārlūkprogrammas pieprasījumus saprotamās instrukcijās. Tas ir kā dzejnieks, kurš atbild uz virtuāliem jautājumiem, piešķir tiem nozīmi un virzienu. Atbildes kodi ne vienmēr ir HTTP kļūdu kodi. Piemēram, “200 OK” nozīmē, ka viss ir kārtībā, bet HTTP kļūda “404 nav atrasts” nozīmē, ka lapa tiek pazaudēta virtuālajā telpā. Katrs kods ir unikāla servera stāvokļa izpausme, kuras atkodēšana ļauj saprast, kas notiek virtuālās pasaules otrā pusē.
1xx kodi (informācija)
1xx statusa kodi HTTP protokolā ir sava veida pirmā saite dialogā starp serveri un klientu. Tā vietā, lai sniegtu pilnīgu atbildi uz pieprasījumu, tie sniedz informāciju par pašreizējo statusu, padarot datu apmaiņu efektīvāku. Apskatīsim tos tuvāk:
100 turpināt. HTTP atbildes kods, kurā serveris dod zaļo gaismu lietotājam, ļaujot viņam droši turpināt liela pieprasījuma sūtīšanu.
101 Pārslēgšanas protokoli. Serveris paziņo klientam, ka tas maina spēles noteikumus, piemēram, pārejot no HTTP uz drošāku HTTPS. Šajā gadījumā protokola maiņai tiek izmantota galvene “Upgrade”.
102. Apstrāde. Šis kods ir kā ziņojums, ka serveris ir pieņēmis pieprasījumu, bet joprojām ir aizņemts ar sarežģītu darbību.
103 Agrīnie padomi. Šeit serveris pirms galvenās atbildes nosūta klientam vairākas indikatīvas galvenes, brīdinot par kaut ko, kas varētu būt aktuāls tuvākajā nākotnē.
2xx kods (veiksmīgi)
HTTP kļūdu kodi grupā 2xx norāda uz veiksmīgu pieprasījumu no servera. Tie būtībā darbojas kā “zaļā gaisma” tīmekļa komunikācijas jomā, apliecinot, ka viss notiek saskaņā ar plānu un ir veiksmīgi pabeigts.
200 OK. Šis statuss tiek izmantots, ja serveris bez problēmām apstrādā pieprasījumu ar GET metodi un atbildē atgriež pieprasītos datus. Galvene "Content-Type" norāda atbildes satura veidu. Tas tikai informē klientu, ka pieprasījums bija veiksmīgs.
201 Izveidots. Šeit serveris paziņo par jauna resursa izveidi.
202 Pieņemts. Serveris informē lietotāju, ka pieprasījums ir pieņemts, taču būs nepieciešams laiks, lai atbildētu.
203 Neautoritatīva informācija. Šis kods nodrošina klientam datus, kas var nebūt oficiāli, bet var tikt izmantoti salīdzināšanai.
204 Nav satura. Serveris ir apstrādājis pieprasījumu, bet neatgriež nekādu papildu saturu.
205 Atiestatīt saturu. Šeit klientam tiek uzdots pēc nosūtīšanas atiestatīt pašreizējo skatu vai datus.
206 Daļējs saturs. Šis gadījums norāda, ka atbildē ir tikai daļa no pieprasītā satura. Galvene "Content-Range" norāda daļēju satura diapazonu.
207 Vairāki statusi. Serveris ir veiksmīgi izpildījis vairāku operāciju pieprasījumu no klienta, un atbilde satur informāciju par katras operācijas statusu.
Lietots 226 IM. Šis kods norāda, ka serveris izmantoja pieaugošo metadatu (IM) metodi un atbildēja, klientam nosūtot tikai modificētās resursa daļas.
3xx kodi (novirzīšana)
3xx kodi HTTP protokolā ir kā norādes, kas novirza lietotāju uz jaunu resursa vietu. Viņi informē klientu, ka ir jāveic papildu darbības, lai iegūtu pieprasīto saturu vai tiktu novirzīts uz citu resursu. Iedziļināsimies katra no tām detaļās:
300 vairākas izvēles iespējas. Klients saņem signālu, ka resursam ir vairākas iespējamās atrašanās vietas, un viņam tiek dota izvēle. Pašreizējos apstākļos galvene "Atrašanās vieta" var norādīt uz alternatīvām resursa iespējām.
301 Pārcelts uz visiem laikiem. Serveris ziņo lietotājam, ka resurss ir neatgriezeniski pārvietots uz citu vietu.
Atrasts 302. Šis HTTP kods ir līdzīgs pagaidu novirzīšanai. Serveris informē patērētāju, ka resurss īslaicīgi ir pieejams citā URL. Galvene "Atrašanās vieta" norāda uz jauno pagaidu novirzīšanas URL.
303 Skatīt citus. Klientam tiek paziņots, ka resurss ir pieejams citā URL, un viņam ir jāiesniedz GET pieprasījums uz šo jauno adresi.
304 nav modificēts. Šis statuss norāda klientam, ka resurss ir palicis nemainīgs kopš pēdējā pieprasījuma un nav nepieciešams atkārtoti lejupielādēt. Veicot pieprasījumu, galvene "If-Modified-Since" tiek izmantota, lai pārbaudītu, vai resurss ir mainīts.
305 Izmantojiet starpniekserveri. Kā atbilde serveris ziņo, ka tam ir jāizmanto norādītais starpniekserveris, lai piekļūtu pieprasītajam resursam.
306 (rezervēts) — Kods ir rezervēts, bet faktiski tas netiek izmantots.
307 Pagaidu novirzīšana. Šis kods ir līdzīgs kodam 302 Found, taču klientam ir jāpaliek pieprasījuma metodei, kas tika izmantota sākotnējā pieprasījumā.
308 Pastāvīgās novirzīšanas. Norāda, ka resurss ir pastāvīgi pārcēlies uz jaunu URI un klientam visiem turpmākajiem pieprasījumiem ir jāizmanto jaunais URI.
4xx HTTP kļūda (klienta kļūdas)
HTTP 4xx kļūdu kodi norāda uz klienta kļūdām. Tas nozīmē, ka problēma ir lietotāja pusē, piemēram, tīmekļa pārlūkprogrammā vai lietotnē.
400 slikti pieprasījumi. Serveris nevar apstrādāt pieprasījumu sintakses kļūdu, nederīgu datu vai citu klienta puses kļūdu dēļ.
401 Nesankcionēts. Serveris nevar apstrādāt pieprasījumu sintakses kļūdu, nederīgu datu vai citu klienta puses kļūdu dēļ.
402 Nepieciešams maksājums. Kods šobrīd nav aktīvs un ir rezervēts izmantošanai nākotnē. Tas var norādīt uz nepieciešamību maksāt pirms piekļuves resursam nākotnē.
HTTP kļūda 403 aizliegta. Klientam nav pietiekamu tiesību, lai piekļūtu pieprasītajam resursam.
404 nav atrasts. Pieprasītais resurss serverī nepastāv. Šī ir viena no visbiežāk sastopamajām lietotāju kļūdām.
405 metode nav atļauta. Serveris neatbalsta norādīto pieprasījuma metodi šī resursa laikā. Galvene “Atļaut” norāda resursam atļautās metodes. Izmantojot šo kodu,
406 Nav pieņemams. Serveris nevar nodrošināt datus tādā formātā, ko var pieņemt klients.
407 Nepieciešama starpniekservera autentifikācija. Lai piekļūtu pieprasītajam resursam, ir nepieciešama autentifikācija starpniekserverī.
408 Pieprasīt taimautu. Serveris gaidīja, lai saņemtu pieprasījumu no klienta, taču iestājās taimauts. Galvene "Retry-After" var norādīt laiku, pēc kura pieprasījumu var mēģināt vēlreiz.
409 Konflikts. Pieprasījumu nevar pabeigt, jo ir konflikts ar pašreizējo resursa stāvokli.
410 aizgājis. Pieprasītais resurss iepriekš pastāvēja, bet tagad ir dzēsts, un tā atjaunošana nav gaidāma.
411 Nepieciešamais garums. Serveris pieprasījumā pieprasa norādīt satura garumu; šīs informācijas neesamība tiek uzskatīta par kļūdu.
412 Priekšnosacījums neizdevās. Pieprasījumā nav izpildīts priekšnosacījums, kas neļauj to izpildīt.
413 Kravnesība pārāk liela. Pieprasījuma datu lielums pārsniedz servera ierobežojumus.
414 URI ir pārāk garš. URI garums pieprasījumā pārsniedz pieļaujamos ierobežojumus.
415 Neatbalstīts datu nesēja veids. Serveris nevar apstrādāt pieprasījumā norādīto datu tipu.
416 Diapazons nav apmierināms. HTTP kļūda, kurā pieprasītais diapazons neatbilst pašreizējiem servera datiem.
417 Cerības neizdevās. Paredzētais nosacījums galvenē "Gaidīt" netika izpildīts.
418 Es esmu tējkanna. Šis kods ir iekļauts kā joks, un tas neparedz nekādas reālas darbības lietotājam vai serverim, un tā nav pilnvērtīga kļūda. Tas norāda, ka serveris ir tējkanna un nav spējīgs pagatavot kafiju.
421 Nepareizi novirzīts pieprasījums. Serveris neapstrādā pieprasījumu pieprasījuma vai servera konfigurācijas kļūdas dēļ.
422 Neapstrādājama vienība. Serveris saprot pieprasījumu, bet neapstrādā to datu kļūdu dēļ.
423 Slēgts. Resurss ir bloķēts un to nevar apstrādāt.
424 Neizdevusies atkarība. Pieprasījums ir atkarīgs no cita neizpildīta pieprasījuma.
425 Pārāk agri. Serveris nav gatavs apstrādāt pieprasījumu, jo tas tiek saņemts agri.
426 Nepieciešams jauninājums. Lai apstrādātu pieprasījumu, serverim ir jāizmanto uzlabots protokols.
428 Nepieciešams priekšnosacījums. Serveris pieprasa, lai pieprasījumā tiktu norādīti noteikti priekšnosacījumi.
429 Pārāk daudz pieprasījumu. Klients īsā laikā nosūtīja pārāk daudz pieprasījumu, pārsniedzot servera ierobežojumus.
431 Pieprasījuma galvenes lauki ir pārāk lieli. Pieprasījuma galvenes pārsniedz maksimālo atļauto izmēru.
449 Mēģiniet vēlreiz ar. Norāda, ka pieprasījumu nevar izpildīt pašreizējais serveris, bet to var veiksmīgi apstrādāt cits serveris, un klientam ir vēlreiz jāmēģina izpildīt pieprasījumu, izmantojot jaunu URI.
451 Nav pieejams juridisku iemeslu dēļ. Resurss nav pieejams juridisku iemeslu dēļ.
499 Klienta slēgtais pieprasījums. Serveris saņēma pieprasījumu, bet klients aizvēra savienojumu pirms apstrādes pabeigšanas.
HTTP 5xx kļūda (servera kļūdas)
HTTP 5xx kļūdu kodi norāda uz servera problēmām. Šie kodi norāda uz problēmām, kas radušās servera pusē, tādēļ serveris nespēj pareizi apstrādāt lietotāja pieprasījumu. Apskatīsim tos tuvāk:
HTTP kļūda 500 Iekšējā servera kļūda. Serveris saskaras ar neparedzētiem apstākļiem, kas neļauj tam pabeigt pieprasījumu. Galvene "Serveris" var norādīt serveri, kurā radās kļūda.
501 nav ieviests. Serveris neatbalsta funkcionalitāti, kas nepieciešama klienta pieprasījuma apstrādei. Galvene "Via" var norādīt starpniekserveri, caur kuru radās kļūda.
502 Bad Gateway. Šis kods nozīmē, ka serveris, kas darbojas kā starpniekserveris, saņēma nepareizu atbildi no cita servera.
HTTP kļūda 503 pakalpojums nav pieejams. Serveris īslaicīgi nevar apstrādāt pieprasījumus.
504 vārtejas noildze. Serveris, kas darbojas kā starpniekserveris, nesaņēma savlaicīgu atbildi no cita servera.
505 HTTP versija netiek atbalstīta. Serveris neatbalsta pieprasījumā norādīto HTTP protokola versiju. Kā rezerves opcija "Upgrade" galvenē var norādīt atbalstītos protokolus.
506 variants arī risina sarunas. Šis statuss netiek izmantots HTTP/1.1; tomēr, ja serveris konstatē iekšēju konfigurāciju, kas rada satura sarunu neskaidrību, tas var izmantot šo atbildi.
507 Nepietiekama krātuve. Serveris nevar izpildīt pieprasījumu, jo serverī nav pietiekami daudz vietas.
Atklāta 508 cilpa. Apstrādājot pieprasījumu, serveris ir atklājis cilpu un atsakās pabeigt pieprasījumu, lai izvairītos no bezgalīgas cilpas.
509 Pārsniegts joslas platuma ierobežojums. Kļūda rodas, ja servera joslas platums tiek pārsniegts liela pieprasījumu vai trafika apjoma dēļ.
510 Nav pagarināts. Lai turpinātu pieprasījumu, klientam ir jāpārsūta papildu paplašinājumi.
Nepieciešama 511 tīkla autentifikācija. Klientam ir jāautentificējas, lai piekļūtu tīklam.
Kā pārbaudīt lapas statusa kodu
Šajā sadaļā mēs apsvērsim trīs galvenos veidus, kā pārbaudīt lapas statusa kodu: izmantojot komandrindu, izmantojot tīmekļa pārlūkprogrammu un izmantojot neatkarīgus tiešsaistes pakalpojumus. Katrai no šīm metodēm ir savas priekšrocības, un tā var būt noderīga dažādās situācijās.
Servera atbildes pārbaude, izmantojot komandrindu
Komandrinda nodrošina ērtu veidu, kā pārbaudīt lapas statusa kodu, neizmantojot tīmekļa pārlūkprogrammu. Lai izmantotu šo metodi, jums ir jāatver komandrinda un jāizmanto komanda:
curl -I http://page-address
Šī komanda nosūta HEAD pieprasījumu (tikai galvenes pieprasījumu) uz norādīto URL un parāda informāciju, tostarp HTTP statusa kodu:
Iepriekš minētajā piemērā parādīts veiksmīgas atbildes kods. Ja atbildē ir ietverts kļūdas kods, piemēram, HTTP kļūda 404 Not Found, rezultāts izskatīsies līdzīgi:
Servera atbildes pārbaude, izmantojot pārlūkprogrammas konsoli
Tīmekļa pārlūkprogrammas izstrādātāja konsole nodrošina rīkus dažādu darbību veikšanai, tostarp lapas statusa koda pārbaudei. Lai servera atbildē redzētu HTTP kodu, ir jāatver izstrādātāja konsole (Ctrl+Shift+K) vai (Ctrl+Shift+J) atkarībā no izmantotās pārlūkprogrammas. Pēc tam atlasiet sadaļu “Tīkls” un ielādējiet vajadzīgo lapu:
Servera atbildes pārbaude, izmantojot neatkarīgus rīkus
Ir liels skaits neatkarīgu tiešsaistes pakalpojumu, kas nodrošina rīkus vietnes lapas statusa koda pārbaudei. Šie pakalpojumi parasti ļauj ātri saņemt pārskatu par sava resursa pieejamību un veiktspēju. Tie visi darbojas, izmantojot vienu un to pašu principu. Kā piemēru mēs apsvērsim populārāko resursu - httpsstatus.io
Vispirms ir jāatver pats pakalpojums, pēc tam jāievada tās lapas adrese, uz kuru jāatbild, un jāpieprasa pārbaude:
Rezultāts tiks parādīts lapas apakšā:
Secinājumi
Noslēgumā jāuzsver, ka HTTP kļūdu kodu izpratne un spēja nolasīt ir galvenā prasme ikvienam, kas iesaistīts tīmekļa izstrādē un serveru uzturēšanā. Noskaidrojot katru kļūdu un izpētot rīkus to noteikšanai, mēs redzam iemeslus, kāpēc ir tik svarīgi efektīvi pārvaldīt šos tīmekļa pakalpojumu aspektus.