Vo svete vývoja webových stránok hrajú chybové kódy HTTP zásadnú úlohu pri ovplyvňovaní používateľskej skúsenosti a reputácie webovej stránky. V tomto článku zvážime úplný zoznam kódov chýb servera, analyzujeme ich význam a naučíme sa, ako efektívne interpretovať kódy odozvy servera, aby sme vyriešili problémy a optimalizovali výkon webových aplikácií.
Čo je kód odpovede HTTP
Kód odpovede HTTP je jazyk webových serverov, ktorý prekladá požiadavky prehliadača na zrozumiteľné pokyny. Je to ako keď básnik odpovedá na virtuálne otázky, dáva im zmysel a smer. Kódy odpovedí nie sú vždy kódy chýb HTTP. Napríklad „200 OK“ znamená, že je všetko v poriadku, ale chyba HTTP „404 Not Found“ znamená, že sa stránka stratí vo virtuálnom priestore. Každý kód je jedinečným vyjadrením stavu servera, ktorého dekódovanie nám umožňuje pochopiť, čo sa deje na druhej strane virtuálneho sveta.
1xx kódy (informácie)
Stavové kódy 1xx v protokole HTTP sú akýmsi prvým článkom v dialógu medzi serverom a klientom. Namiesto poskytnutia úplnej odpovede na požiadavku poskytujú informácie o aktuálnom stave, čím zefektívňujú výmenu údajov. Poďme sa na ne pozrieť bližšie:
100 Pokračovať . Kód odpovede HTTP, v ktorom server dá používateľovi zelenú, čo mu umožní bezpečne pokračovať v odosielaní veľkej požiadavky.
101 Prepínanie protokolov . Server informuje klienta, že mení pravidlá hry, napríklad prechádza z HTTP na bezpečnejší HTTPS. V tomto prípade sa na zmenu protokolu používa hlavička „Upgrade“.
102 Spracovanie . Tento kód je ako správa, že server prijal požiadavku, ale stále je zaneprázdnený zložitou operáciou.
103 Prvé rady . Server tu pred hlavnou odpoveďou pošle klientovi niekoľko indikatívnych hlavičiek, ktoré ho upozornia na niečo, čo by mohlo byť v blízkej budúcnosti relevantné.
2xx kód (úspešný)
Chybové kódy HTTP v skupine 2xx označujú úspešnú požiadavku zo servera. V podstate fungujú ako „zelené svetlo“ v rámci webovej komunikácie, potvrdzujúce, že všetko ide podľa plánu a úspešne dokončené.
200 OK . Tento stav sa používa, keď server bez problémov spracuje požiadavku metódou GET a ako odpoveď vráti požadované údaje. Hlavička „Content-Type“ v odpovedi uvádza typ obsahu. Iba informuje klienta, že požiadavka bola úspešná.
201 Vytvorené . Tu server oznamuje vytvorenie nového zdroja.
202 Prijaté . Server oznámi používateľovi, že požiadavka bola prijatá, ale odpoveď bude trvať dlhšie.
203 Neautoritatívne informácie . Tento kód poskytuje klientovi údaje, ktoré nemusia byť oficiálne, ale možno ich použiť na porovnanie.
204 Žiadny obsah . Server spracoval požiadavku, ale nevracia žiadny ďalší obsah.
205 Obnoviť obsah . Tu je klientovi pokyn, aby po odoslaní obnovil aktuálne zobrazenie alebo údaje.
206 Čiastočný obsah . Tento prípad naznačuje, že odpoveď obsahuje iba časť požadovaného obsahu. Hlavička „Content-Range“ označuje čiastočný rozsah obsahu.
207 Viacnásobný stav. Server úspešne dokončil požiadavku na viacero operácií od klienta a odpoveď obsahuje informácie o stave každej z operácií.
226 Použité IM . Tento kód označuje, že server použil metódu prírastkových metadát (IM) a odpovedal tak, že klientovi odovzdal iba upravené časti zdrojov.
3xx kódy (presmerovania)
Kódy 3xx v protokole HTTP sú ako ukazovatele, ktoré vedú používateľa k novému umiestneniu zdroja. Informujú klienta, že na získanie požadovaného obsahu alebo na presmerovanie na iný zdroj je potrebné vykonať následné kroky. Poďme sa ponoriť do detailov každého z nich:
300 Viacero možností . Klient dostane signál, že existuje niekoľko možných umiestnení zdroja a ako odpoveď dostane na výber. Za súčasných okolností môže hlavička „Umiestnenie“ označovať alternatívne možnosti pre zdroj.
301 Trvalo presunuté. Server oznámi používateľovi, že zdroj bol trvalo presunutý na iné miesto.
Nájdené 302. Tento kód HTTP je podobný dočasnému presmerovaniu. Server informuje spotrebiteľa, že zdroj je dočasne dostupný na inej URL adrese. Hlavička „Location“ odkazuje na novú URL adresu pre dočasné presmerovanie.
303 Pozri Ostatné . Klientovi sa oznámi, že zdroj je dostupný na inej URL adrese a musí odoslať požiadavku GET na túto novú adresu.
304 Nezmenené . Tento stav informuje klienta, že zdroj zostal od poslednej požiadavky nezmenený a nie je potrebné ho znova sťahovať. Pri zadávaní požiadavky sa na kontrolu, či bol zdroj upravený, použije hlavička „If-Modified-Since“.
305 Použiť proxy. Server ako odpoveď oznámi, že na prístup k požadovanému zdroju by mal použiť zadaný proxy.
306 (rezervované) – Kód bol rezervovaný, ale v skutočnosti sa nepoužíva.
307 Dočasné presmerovanie . Tento kód je podobný kódu 302 Nájdené, ale vyžaduje, aby klient zostal v metóde požiadavky, ktorá bola použitá v pôvodnej požiadavke.
308 Trvalé presmerovanie . Znamená, že zdroj sa trvalo presunul na nové URI a klient by mal nové URI použiť pre všetky budúce požiadavky.
4xx HTTP Error (Chyby klienta)
Chybové kódy HTTP 4xx označujú chyby klienta. To znamená, že problém je na strane používateľa, ako je napríklad webový prehliadač alebo aplikácia.
400 Nesprávna požiadavka . Server nemôže spracovať požiadavku z dôvodu syntaktických chýb, neplatných údajov alebo iných chýb na strane klienta.
401 Neoprávnené. Server nemôže spracovať požiadavku z dôvodu syntaktických chýb, neplatných údajov alebo iných chýb na strane klienta.
402 Vyžaduje sa platba . Kód momentálne nie je aktívny a je rezervovaný na budúce použitie. Môže to naznačovať potrebu zaplatiť pred prístupom k zdroju v budúcnosti.
Chyba HTTP 403 Zakázané. Klient nemá dostatočné práva na prístup k požadovanému zdroju.
404 Nenájdené. Požadovaný zdroj na serveri neexistuje. Toto je jedna z najčastejších chýb používateľov.
405 Metóda nie je povolená . Server nepodporuje zadanú metódu požiadavky v tomto zdroji. Hlavička „Povoliť“ označuje povolené metódy pre zdroj. S týmto kódom,
406 Neprijateľné. Server nemôže poskytnúť dáta vo formáte, ktorý klient dokáže akceptovať.
407 Vyžaduje sa overenie proxy . Pre prístup k požadovanému zdroju je potrebné overenie na proxy serveri.
408 Časový limit požiadavky . Server čakal na prijatie požiadavky od klienta, ale časový limit uplynul. Hlavička „Retry-After“ môže označovať čas, po ktorom je možné požiadavku zopakovať.
409 Konflikt. Požiadavku nie je možné dokončiť z dôvodu konfliktu s aktuálnym stavom zdroja.
410 Preč . Požadovaný zdroj predtým existoval, ale teraz bol odstránený a jeho obnovenie sa neočakáva.
411 Povinná dĺžka . Server požaduje v požiadavke zadať dĺžku obsahu; absencia tejto informácie sa považuje za chybu.
412 Predpoklad zlyhal . Predpoklad v požiadavke nie je splnený, čo bráni jej vykonaniu.
413 Údajová hmotnosť je príliš veľká . Veľkosť požadovaných údajov presahuje limity servera.
414 URI je príliš dlhé . Dĺžka URI v požiadavke prekračuje prijateľné limity.
415 Nepodporovaný typ média . Server nedokáže spracovať typ údajov uvedený v požiadavke.
416 Rozsah nie je uspokojivý . Chyba HTTP, keď požadovaný rozsah nezodpovedá aktuálnym údajom servera.
417 Očakávania zlyhali . Očakávaná podmienka v hlavičke „Očakávať“ nebola splnená.
418 Som čajník . Tento kód je zahrnutý ako žart a neznamená žiadnu skutočnú akciu pre používateľa ani obsluhu, a nie je to úplná chyba. Znamená to, že obsluha je čajník a nie je schopná pripraviť kávu.
421 Nesprávne smerovaná požiadavka . Server nespracuje požiadavku z dôvodu chyby v požiadavke alebo konfigurácii servera.
422 Nespracovateľná entita . Server rozumie požiadavke, ale nespracuje ju kvôli chybám v údajoch.
423 Zamknuté. Zdroj je zablokovaný a nemožno ho spracovať.
424 Zlyhala závislosť . Požiadavka závisí od inej nevykonanej požiadavky.
425 Príliš skoro. Server nie je pripravený spracovať požiadavku z dôvodu jej skorého príchodu.
426 Vyžaduje sa aktualizácia . Server vyžaduje na spracovanie požiadavky použitie pokročilejšieho protokolu.
428 Požadovaná predbežná podmienka . Server vyžaduje, aby boli v požiadavke špecifikované určité predbežné podmienky.
429 Príliš veľa požiadaviek . Klient odoslal príliš veľa požiadaviek v krátkom čase, čím prekročil limity servera.
431 Polia hlavičky požiadavky sú príliš veľké . Hlavičky požiadavky presahujú maximálnu povolenú veľkosť.
449 Skúsiť znova s. Znamená, že požiadavku nemôže spustiť aktuálny server, ale môže ju úspešne spracovať iný server a klient by mal požiadavku zopakovať s novým URI.
451 Nedostupné z právnych dôvodov . Zdroj nie je k dispozícii z právnych dôvodov.
499 Požiadavka klienta uzavretá . Server prijal požiadavku, ale klient ukončil pripojenie pred dokončením spracovania.
Chyba HTTP 5xx (chyby servera)
Chybové kódy HTTP 5xx označujú problémy servera. Tieto kódy označujú problémy, ktoré sa vyskytli na strane servera, takže server nie je schopný spracovať požiadavku používateľa správnym spôsobom. Poďme sa na ne pozrieť bližšie:
Chyba HTTP 500 Interná chyba servera . Server narazil na neočakávané okolnosti, ktoré mu bránia v dokončení požiadavky. Hlavička „Server“ môže označovať server, na ktorom sa chyba vyskytla.
501 Nie je implementované . Server nepodporuje funkcionalitu potrebnú na spracovanie požiadavky klienta. Hlavička „Via“ môže označovať proxy server, cez ktorý sa chyba vyskytla.
502 Chybná brána . Tento kód znamená, že server, ktorý funguje ako proxy, dostal nesprávnu odpoveď od iného servera.
Chyba HTTP 503 Služba nie je dostupná . Server dočasne nedokáže spracovať požiadavky.
504 Časový limit brány . Server, ktorý funguje ako proxy, nedostal včasnú odpoveď od iného servera.
505 Verzia HTTP nie je podporovaná . Server nepodporuje verziu protokolu HTTP uvedenú v požiadavke. Ako záložná možnosť môže hlavička „Upgrade“ uvádzať podporované protokoly.
506 Variant tiež vyjednáva . Tento stav sa nepoužíva v HTTP/1.1; ak však server zistí internú konfiguráciu, ktorá vedie k nejednoznačnosti vyjednávania obsahu, môže použiť túto odpoveď.
507 Nedostatočné úložisko . Server nemôže splniť požiadavku z dôvodu nedostatku úložného priestoru na serveri.
508 Zistená slučka . Server zistil slučku počas spracovania požiadavky a odmieta ju dokončiť, aby sa predišlo nekonečnej slučke.
509 Prekročený limit šírky pásma . Chyba sa vyskytuje, keď je šírka pásma servera prekročená v dôsledku vysokého objemu požiadaviek alebo prevádzky.
510 Nepredĺžené . Klient musí preniesť ďalšie predĺženia, aby mohol pokračovať v žiadosti.
511 Vyžaduje sa overenie v sieti . Klient sa musí overiť, aby získal prístup k sieti.
Ako skontrolovať kód stavu stránky
V tejto časti zvážime tri hlavné spôsoby kontroly kódu stavu stránky: pomocou príkazového riadka, pomocou webového prehliadača a pomocou nezávislých online služieb. Každá z týchto metód má svoje výhody a môže byť užitočná v rôznych situáciách.
Kontrola odpovede servera cez príkazový riadok
Príkazový riadok poskytuje pohodlný spôsob kontroly kódu stavu stránky bez toho, aby ste museli použiť webový prehliadač. Pre túto metódu musíte otvoriť príkazový riadok a použiť príkaz:
curl -I http://page-address
Tento príkaz odošle požiadavku HEAD (požiadavka len hlavičky) na zadanú adresu URL a zobrazí informácie vrátane stavového kódu HTTP:
Vyššie uvedený príklad ukazuje úspešný kód odpovede. V prípade odpovede, ktorá obsahuje kód chyby, ako napríklad chyba HTTP 404 Not Found, bude výsledok vyzerať podobne:
Kontrola odpovede servera cez konzolu prehliadača
Konzola vývojára webového prehliadača poskytuje nástroje na vykonávanie rôznych operácií vrátane kontroly kódu stavu stránky. Ak chcete vidieť kód HTTP v odpovedi servera, musíte otvoriť konzolu pre vývojárov (Ctrl+Shift+K) alebo (Ctrl+Shift+J) v závislosti od použitého prehliadača. Ďalej vyberte sekciu „sieť“ a načítajte požadovanú stránku:
Kontrola odozvy servera pomocou nezávislých nástrojov
Existuje veľké množstvo nezávislých online služieb, ktoré poskytujú nástroje na kontrolu stavového kódu webovej stránky. Tieto služby vám zvyčajne umožňujú rýchlo získať prehľad o dostupnosti a výkonnosti vášho zdroja. Všetky fungujú na rovnakom princípe. Ako príklad si vezmeme najpopulárnejší zdroj - httpsstatus.io.
Najprv musíte otvoriť samotnú službu, potom zadať adresu stránky, ktorú odpoveď potrebujete zistiť, a požiadať o overenie:
Výsledok sa zobrazí v spodnej časti stránky:
Záver
Na záver treba zdôrazniť, že pochopenie a schopnosť čítať chybové kódy HTTP je kľúčovou zručnosťou pre každého, kto sa podieľa na vývoji webu a údržbe serverov. Keď zisťujeme každú chybu a skúmame nástroje na ich odhalenie, vidíme dôvody, prečo je také dôležité efektívne spravovať tieto aspekty webových služieb.