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čujte. HTTP kód odpovědi, ve kterém server dává uživateli zelenou a umožňuje mu bezpečně pokračovat v odesílání velkého požadavku.
101 Přepínací protokoly. Server sdělí klientovi, ž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“.
Zpracování 102. Tento kód je jako zpráva, že server přijal požadavek, ale je stále zaneprázdněn složitou operací.
103 prvních rad. Zde server před hlavní odpovědí odešle klientovi několik indikativních hlaviček, které varují před něčím, co může 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 jako odpověď vrátí požadovaná data. Záhlaví "Content-Type" uvádí typ obsahu v odpovědi. Pouze informuje klienta, že žádost byla úspěšná.
201 Vytvořeno. Zde server oznámí vytvoření nového zdroje.
202 přijmout. Server informuje uživatele, že požadavek byl přijat, ale bude chvíli trvat, než odpoví.
203 Neautoritativní informace. Tento kód poskytuje klientovi údaje, které nemusí být oficiální, ale lze je použít pro srovnání.
204 Žádný obsah. Server požadavek zpracoval, ale nevrací žádný další obsah.
205 Obnovit obsah. Zde je klient instruován, aby po odeslání resetoval aktuální pohled nebo data.
206 Částečný obsah. Tento případ znamená, že odpověď obsahuje pouze část požadovaného obsahu. Záhlaví "Content-Range" označuje částečný rozsah obsahu.
207 Vícestav. Server úspěšně dokončil požadavek na více operací od klienta a odpověď obsahuje informace o stavu každé z operací.
Využito 226 IM. Tento kód označuje, že server použil metodu Incremental Metadata (IM) a odpověděl tak, že klientovi předal pouze upravené části prostředků.
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 pro zdroj existuje několik možných umístění, a jako odpověď dostane na výběr. Za současných okolností může záhlaví "Umístění" označovat alternativní možnosti pro zdroj.
301 Trvale přesunuto. Server uživateli hlásí, že prostředek byl trvale přesunut do jiného umístění.
Nalezeno 302. Tento kód HTTP je podobný dočasnému přesměrování. Server informuje spotřebitele, že zdroj je dočasně dostupný na jiné adrese URL. Záhlaví „Umístění“ ukazuje na novou adresu URL pro dočasné přesměrování.
303 Viz Ostatní. Klientovi je sděleno, že zdroj je dostupný na jiné adrese URL a musí provést požadavek GET na tuto novou adresu.
304 nebyl změněn. Tento stav sděluje klientovi, že prostředek zůstal od posledního požadavku nezměněn a není třeba jej znovu stahovat. Při zadávání požadavku se hlavička "If-Modified-Since" používá ke kontrole, zda byl zdroj změněn.
305 Použijte proxy. Jako odpověď server 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 Found, 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í. Označuje, že zdroj provedl trvalý přesun na nový identifikátor URI a klient by měl nový identifikátor 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.
Požadavek na chybu 400. Server nemůže zpracovat požadavek kvůli syntaktickým chybám, neplatným datům nebo jiným chybám na straně klienta.
401 Neoprávněně. Server nemůže zpracovat požadavek kvůli syntaktickým chybám, neplatným datům nebo jiným chybám na straně klienta.
402 Je vyžadována platba. Kód není momentálně aktivní a je vyhrazen pro budoucí použití. Může naznačovat nutnost zaplatit před přístupem ke zdroji v budoucnu.
Chyba HTTP 403 Zakázáno. Klient nemá dostatečná práva pro přístup k požadovanému zdroji.
404 nenalezeno. Požadovaný prostředek na serveru neexistuje. Toto je jedna z nejčastějších chyb uživatelů.
Metoda 405 není povolena. Server během tohoto prostředku nepodporuje zadanou metodu požadavku. Záhlaví „Allow“ označuje povolené metody pro zdroj. S tímto kódem
406 Nepřijatelné. Server nemůže poskytovat data ve formátu, který může klient akceptovat.
407 Je vyžadováno ověření proxy. Pro přístup k požadovanému zdroji je vyžadováno ověření na proxy serveru.
408 Vypršel časový limit požadavku. Server čekal na přijetí požadavku od klienta, ale vypršel časový limit. Záhlaví "Retry-After" může označovat čas, po kterém lze požadavek opakovat.
409 Konflikt. Požadavek nelze dokončit kvůli konfliktu s aktuálním stavem zdroje.
410 Gone. Požadovaný zdroj dříve existoval, ale nyní byl odstraněn a jeho obnovení se neočekává.
411 Požadovaná délka. Server požaduje specifikovat délku obsahu v požadavku; absence této informace je považována za chybu.
412 Předběžná podmínka se nezdařila. V požadavku není splněna podmínka, která brání jeho provedení.
413 Příliš velké užitečné zatížení. Velikost dat požadavku překračuje limity serveru.
414 URI je 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 nesplnitelný. Chyba HTTP, kde požadovaný rozsah neodpovídá aktuálním datům serveru.
417 Očekávání se nezdařilo. Očekávaná podmínka v záhlaví "Očekávat" nebyla splněna.
418 Jsem čajník. Tento kód je zahrnut jako vtip a neznamená žádnou skutečnou akci pro uživatele nebo server a nejedná se o plnohodnotnou chybu. Označuje, že server je konvice na čaj a není schopen připravit kávu.
421 Špatně směrovaný požadavek. Server požadavek nezpracuje kvůli chybě v požadavku nebo konfiguraci serveru.
422 Nezpracovatelná entita. Server rozumí požadavku, ale kvůli chybám dat ho nezpracuje.
423 Zamčeno. Zdroj je zablokován a nelze jej zpracovat.
424 Neúspěšná závislost. Požadavek závisí na jiném nevyřízeném požadavku.
425 Příliš brzy. Server není připraven zpracovat požadavek z důvodu jeho předčasného příchodu.
426 Je vyžadován upgrade. Server vyžaduje použití pokročilejšího protokolu ke zpracování požadavku.
428 Předběžná podmínka je vyžadována. Server vyžaduje, aby byly v požadavku uvedeny určité předběžné podmínky.
429 Příliš mnoho požadavků. Klient odeslal příliš mnoho požadavků v krátké době, čímž překročil limity serveru.
431 Pole záhlaví požadavku jsou příliš velká. Záhlaví požadavků překračují maximální povolenou velikost.
449 Zkuste to znovu s. Označuje, ž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 identifikátorem URI.
451 nedostupné z právních důvodů. Zdroj je z právních důvodů nedostupný.
499 Klient uzavřený požadavek. Server přijal požadavek, 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 narazí 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 došlo k chybě.
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 Bad brána. Tento kód znamená, že server, který funguje jako proxy, obdržel nesprávnou odpověď od jiného serveru.
HTTP Chyba 503 Služba není k dispozici. Server dočasně nemůže zpracovávat požadavky.
504 Timeout brány. Server, který funguje jako proxy, neobdržel včasnou odpověď od jiného serveru.
Verze HTTP 505 není podporována. Server nepodporuje verzi protokolu HTTP uvedenou v požadavku. Jako záložní možnost může hlavička "Upgrade" označovat podporované protokoly.
506 Varianta také vyjednává. Tento stav se v HTTP/1.1 nepoužívá; pokud však server zjistí vnitřní konfiguraci, která vede k nejednoznačnosti vyjednávání obsahu, může tuto odpověď použít.
507 Nedostatek úložiště. Server nemůže splnit požadavek z důvodu nedostatečného úložného prostoru na serveru.
Zjištěna smyčka 508. Server při zpracování požadavku zjistil smyčku a odmítne požadavek dokončit, aby se vyhnul nekonečné smyčce.
Překročen limit šířky pásma 509. K chybě dochází, když je překročena šířka pásma serveru z důvodu velkého objemu požadavků nebo provozu.
510 Neprodlouženo. Aby klient mohl pokračovat v požadavku, musí přenést další rozšíření.
511 Vyžaduje se síťové ověření. Klient se musí autentizovat, 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 kódu stavu 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 uvážíme nejoblíbenější zdroj - httpstatus.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.