Ve světě vývoje webu hrají chybové kódy HTTP zásadní roli při ovlivňování uživatelské zkušenosti a pověsti webové stránky. V tomto článku se podíváme na úplný seznam kódů chyb serveru, analyzujeme jejich význam a naučíme se, jak efektivně interpretovat kódy odezvy serveru, abychom vyřešili problémy a optimalizovali výkon webových aplikací.
Co je kód odpovědi HTTP
Kód odezvy HTTP je jazyk webových serverů, který převádí požadavky prohlížeče do srozumitelných pokynů. Je to jako když básník odpovídá na virtuální otázky, dává jim smysl a směr. Kódy odezvy nejsou vždy kódy chyb HTTP. Například „200 OK“ znamená, že je vše v pořádku, ale chyba HTTP „404 Nenalezeno“ znamená, že se stránka ztratí ve virtuálním prostoru. Každý kód je jedinečným vyjádřením stavu serveru, jehož dekódování nám umožňuje pochopit, co se děje na druhé straně virtuálního světa.
1xx kódy (informace)
Stavové kódy 1xx v protokolu HTTP jsou jakýmsi prvním článkem v dialogu mezi serverem a klientem. Namísto poskytnutí úplné odpovědi na požadavek poskytují informace o aktuálním stavu, čímž zefektivňují výměnu dat. Pojďme se na ně podívat blíže:
100 Pokračovat . Kód odpovědi HTTP, ve kterém server dá uživateli zelenou, což mu umožní bezpečně pokračovat v odesílání velkého požadavku.
101 Přepínání protokolů . Server informuje klienta, že mění pravidla hry, například přechází z HTTP na bezpečnější HTTPS. V tomto případě se pro změnu protokolu používá hlavička „Upgrade“.
102 Zpracování . Tento kód je jako zpráva, že server požadavek přijal, ale je stále zaneprázdněn složitou operací.
103 První rady . Zde server odešle klientovi několik indikativních hlaviček před hlavní odpovědí, které varují před něčím, co by mohlo být v blízké budoucnosti relevantní.
2xx kód (úspěšný)
Chybové kódy HTTP ve skupině 2xx označují úspěšný požadavek ze serveru. Fungují v podstatě jako „zelená“ v rámci webové komunikace a potvrzují, že vše jde podle plánu a úspěšně dokončeno.
200 OK . Tento stav se používá, když server bez problémů zpracuje požadavek metodou GET a vrátí požadovaná data jako odpověď. Hlavička „Content-Type“ v odpovědi uvádí typ obsahu. Pouze informuje klienta, že požadavek byl úspěšný.
201 Vytvořeno . Zde server oznamuje vytvoření nového zdroje.
202 Přijato . Server informuje uživatele o přijetí požadavku, ale odpověď bude chvíli trvat.
203 Neautoritativní informace . Tento kód poskytuje klientovi data, která nemusí být oficiální, ale lze je použít pro srovnání.
204 Žádný obsah . Server zpracoval požadavek, ale nevrací žádný další obsah.
205 Obnovit obsah . Zde je klient instruován k resetování aktuálního zobrazení nebo dat po odeslání.
206 Částečný obsah . Tento případ indikuje, že odpověď obsahuje pouze část požadovaného obsahu. Záhlaví „Content-Range“ označuje částečný rozsah obsahu.
207 Vícenásobný stav. Server úspěšně dokončil požadavek na více operací od klienta a odpověď obsahuje informace o stavu každé z operací.
226 Použitá metoda IM . Tento kód označuje, že server použil metodu inkrementálních metadat (IM) a odpověděl předáním klientovi pouze upravených částí zdroje.
3xx kódy (přesměrování)
Kódy 3xx v protokolu HTTP jsou jako ukazatele, které uživatele navedou na nové umístění zdroje. Informují klienta, že je třeba podniknout následné kroky k získání požadovaného obsahu nebo k přesměrování na jiný zdroj. Pojďme se ponořit do detailů každého z nich:
300 Více možností . Klient obdrží signál, že existuje několik možných umístění zdroje, a jako odpověď je mu nabídnuta možnost. Za současných okolností může záhlaví „Umístění“ označovat alternativní možnosti pro zdroj.
301 Trvale přesunuto. Server oznámí uživateli, že zdroj byl trvale přesunut na jiné místo.
Nalezeno 302. Tento kód HTTP je podobný dočasnému přesměrování. Server informuje uživatele, že zdroj je dočasně dostupný na jiné URL adrese. Záhlaví „Location“ odkazuje na novou URL adresu pro dočasné přesměrování.
303 Viz Ostatní . Klientovi je sděleno, že zdroj je dostupný na jiné URL adrese a musí na tuto novou adresu odeslat požadavek GET.
304 Nezměněno . Tento stav informuje klienta, že zdroj zůstal od posledního požadavku nezměněn a není nutné jej znovu stahovat. Při vytváření požadavku se k ověření, zda byl zdroj upraven, použije záhlaví „If-Modified-Since“.
305 Použít proxy. Server jako odpověď hlásí, že by měl pro přístup k požadovanému zdroji použít zadaný proxy.
306 (rezervováno) – Kód byl rezervován, ale ve skutečnosti se nepoužívá.
307 Dočasné přesměrování . Tento kód je podobný kódu 302 Nalezeno, ale vyžaduje, aby klient zůstal v metodě požadavku, která byla použita v původním požadavku.
308 Trvalé přesměrování . Znamená, že zdroj provedl trvalý přesun na nový URI a klient by měl nový URI používat pro všechny budoucí požadavky.
4xx HTTP Error (Chyby klienta)
Chybové kódy HTTP 4xx označují chyby klienta. To znamená, že problém je na straně uživatele, jako je webový prohlížeč nebo aplikace.
400 Špatný požadavek . Server nemůže požadavek zpracovat kvůli syntaktickým chybám, neplatným datům nebo jiným chybám na straně klienta.
401 Neautorizováno. Server nemůže požadavek zpracovat z důvodu syntaktických chyb, neplatných dat nebo jiných chyb na straně klienta.
402 Je vyžadována platba . Kód momentálně není aktivní a je rezervován pro budoucí použití. Může to znamenat, že je nutné před budoucím přístupem ke zdroji zaplatit.
Chyba HTTP 403 Zakázáno. Klient nemá dostatečná práva pro přístup k požadovanému zdroji.
404 Nenalezen. Požadovaný zdroj na serveru neexistuje. Toto je jedna z nejčastějších chyb uživatelů.
405 Metoda není povolena . Server nepodporuje zadanou metodu požadavku v tomto zdroji. Záhlaví „Povolit“ označuje povolené metody pro daný zdroj. S tímto kódem,
406 Nepřijatelné. Server nemůže poskytnout data ve formátu, který klient může akceptovat.
407 Vyžadováno ověření proxy . Pro přístup k požadovanému zdroji je vyžadováno ověření na proxy serveru.
408 Časový limit požadavku . Server čekal na přijetí požadavku od klienta, ale časový limit vypršel. Záhlaví „Retry-After“ může uvádět čas, po kterém lze požadavek zopakovat.
409 Konflikt. Požadavek nelze dokončit kvůli konfliktu s aktuálním stavem zdroje.
410 Pryč . Požadovaný zdroj dříve existoval, ale nyní byl smazán a jeho obnovení se neočekává.
411 Požadovaná délka . Server požaduje v požadavku specifikaci délky obsahu; absence této informace je považována za chybu.
412 Předpoklad selhal . Předpoklad v požadavku není splněn, což brání jeho provedení.
413 Příliš velká datová část . Velikost dat požadavku překračuje limity serveru.
414 URI příliš dlouhé . Délka URI v požadavku překračuje přijatelné limity.
415 Nepodporovaný typ média . Server nemůže zpracovat datový typ uvedený v požadavku.
416 Rozsah není splnitelný . Chyba HTTP, kdy požadovaný rozsah neodpovídá aktuálním datům serveru.
417 Očekávání selhalo . Očekávaná podmínka v záhlaví „Očekávání“ nebyla splněna.
418 Jsem konvice na čaj . Tento kód je zahrnut jako vtip a neznamená žádnou skutečnou akci pro uživatele ani obsluhu a nejedná se o plnohodnotnou chybu. Znamená, že obsluha je konvice na čaj a není schopna vařit kávu.
421 Chybně směrovaný požadavek . Server nezpracuje požadavek kvůli chybě v požadavku nebo konfiguraci serveru.
422 Nezpracovatelná entita . Server požadavku rozumí, ale kvůli chybám v datech jej nezpracuje.
423 Zamčeno. Zdroj je zablokován a nelze jej zpracovat.
424 Selhala závislost . Požadavek závisí na jiném neprovedeném požadavku.
425 Příliš brzy. Server není připraven zpracovat požadavek, protože dorazil brzy.
426 Je vyžadován upgrade . Server vyžaduje pro zpracování požadavku použití pokročilejšího protokolu.
428 Požadovaná předběžná podmínka . Server vyžaduje, aby byly v požadavku specifikovány určité předběžné podmínky.
429 Příliš mnoho požadavků . Klient odeslal příliš mnoho požadavků v krátkém čase, čímž překročil limity serveru.
431 Pole záhlaví požadavku jsou příliš velká . Záhlaví požadavku překračují maximální povolenou velikost.
449 Zkusit znovu s. Znamená, že požadavek nemůže být spuštěn aktuálním serverem, ale může být úspěšně zpracován jiným serverem a klient by měl požadavek zopakovat s novým URI.
451 Nedostupné z právních důvodů . Zdroj není k dispozici z právních důvodů.
499 Klient uzavřel požadavek . Server požadavek přijal, ale klient před dokončením zpracování ukončil připojení.
Chyba HTTP 5xx (chyby serveru)
Chybové kódy HTTP 5xx označují problémy serveru. Tyto kódy označují problémy, které se vyskytly na straně serveru, takže server není schopen zpracovat požadavek uživatele správným způsobem. Pojďme se na ně podívat blíže:
Chyba HTTP 500 Interní chyba serveru . Server narazil na neočekávané okolnosti, které mu brání v dokončení požadavku. Záhlaví „Server“ může označovat server, na kterém k chybě došlo.
501 Není implementováno . Server nepodporuje funkce potřebné ke zpracování požadavku klienta. Záhlaví „Via“ může označovat proxy server, přes který k chybě došlo.
502 Špatná brána . Tento kód znamená, že server, který funguje jako proxy, obdržel nesprávnou odpověď od jiného serveru.
Chyba HTTP 503 Služba není dostupná . Server dočasně nemůže zpracovávat požadavky.
504 Časový limit brány . Server, který funguje jako proxy, neobdržel včasnou odpověď od jiného serveru.
505 Verze HTTP není podporována . Server nepodporuje verzi protokolu HTTP uvedenou v požadavku. Jako záložní možnost může záhlaví „Upgrade“ uvádět podporované protokoly.
506 Varianta také vyjednává . Tento stav se v HTTP/1.1 nepoužívá; pokud však server zjistí interní konfiguraci, která vede k nejednoznačnosti při vyjednávání obsahu, může tuto odpověď použít.
507 Nedostatek úložného prostoru . Server nemůže požadavek splnit z důvodu nedostatku úložného prostoru na serveru.
508 Detekována smyčka . Server detekoval smyčku při zpracování požadavku a odmítá požadavek dokončit, aby se vyhnul nekonečné smyčce.
509 Překročen limit šířky pásma . K chybě dochází, když je šířka pásma serveru překročena v důsledku vysokého objemu požadavků nebo provozu.
510 Neprodlouženo . Klient musí přenést další prodloužení, aby mohl pokračovat v požadavku.
511 Vyžadováno ověření v síti . Klient se musí ověřit, aby získal přístup k síti.
Jak zkontrolovat stavový kód stránky
V této části se budeme zabývat třemi hlavními způsoby, jak zkontrolovat stavový kód stránky: pomocí příkazového řádku, pomocí webového prohlížeče a pomocí nezávislých online služeb. Každá z těchto metod má své výhody a může být užitečná v různých situacích.
Kontrola odezvy serveru pomocí příkazového řádku
Příkazový řádek poskytuje pohodlný způsob, jak zkontrolovat stavový kód stránky, aniž byste museli používat webový prohlížeč. Pro tuto metodu musíte otevřít příkazový řádek a použít příkaz:
curl -I http://page-address
Tento příkaz odešle požadavek HEAD (pouze záhlaví) na zadanou adresu URL a zobrazí informace včetně stavového kódu HTTP:
Výše uvedený příklad ukazuje úspěšný kód odpovědi. V případě odpovědi, která obsahuje kód chyby, jako je chyba 404 Nenalezeno HTTP, bude výsledek vypadat podobně:
Kontrola odpovědi serveru prostřednictvím konzoly prohlížeče
Vývojářská konzole webového prohlížeče poskytuje nástroje pro provádění různých operací, včetně kontroly kódu stavu stránky. Abyste viděli kód HTTP v odpovědi serveru, musíte otevřít konzoli pro vývojáře (Ctrl+Shift+K) nebo (Ctrl+Shift+J) v závislosti na použitém prohlížeči. Dále vyberte sekci „síť“ a načtěte požadovanou stránku:
Kontrola odezvy serveru pomocí nezávislých nástrojů
Existuje velké množství nezávislých online služeb, které poskytují nástroje pro kontrolu stavového kódu webové stránky. Tyto služby vám obvykle umožňují rychle získat přehled o dostupnosti a výkonu vašeho zdroje. Všechny fungují na stejném principu. Jako příklad si uvedeme nejoblíbenější zdroj - httpsstatus.io.
Nejprve musíte otevřít samotnou službu, poté zadat adresu stránky, kterou potřebujete zjistit, a požádat o ověření:
Výsledek se zobrazí ve spodní části stránky:
Závěr
Na závěr je třeba zdůraznit, že porozumění a schopnost číst chybové kódy HTTP je klíčovou dovedností pro každého, kdo se zabývá vývojem webu a údržbou serverů. Když zjišťujeme každou chybu a zkoumáme nástroje k jejich detekci, vidíme důvody, proč je tak důležité tyto aspekty webových služeb efektivně spravovat.