Stavové kódy HTTP vysvětlené, od 200 do 503
Pokaždé, když se váš prohlížeč zeptá webového serveru na něco konkrétního, server odpoví trojmístným číslem ještě předtím, než pošle zpět jakékoliv HTML, obrázek nebo JSON. Toto číslo je stavový kód HTTP a je to serverův stručný způsob, jak říct, co se stalo: stránka je tady, přesunula se, nemáte sem přístup, nebo se něco pokazilo na naší straně. Většinu času tyto kódy nikdy neuvidíte, protože všechno funguje a stránka se prostě načte. Ale ve chvíli, kdy se web zachová divně, je stavový kód první stopou, kterou se vyplatí přečíst.
Čísla nejsou náhodná. První číslice řadí každou odpověď do jedné z pěti rodin, takže i neznámý kód vám podle úvodní číslice zhruba napoví, co se pokazilo. Naučte se těchto pět rodin a dokážete přečíst téměř jakoukoliv odpověď na první pohled.

Pět tříd
1xx informační. Server obdržel váš požadavek a stále na něm pracuje. V každodenním prohlížení jsou vzácné a obvykle se odehrávají tiše mezi prohlížečem a serverem. 100 Continue je klasický příklad, který klientovi sděluje, že v pořádku může poslat zbytek velkého těla požadavku.
2xx úspěch. Požadavek se podařil. 200 OK je ten, který chcete vidět celý den, znamená, že prostředek byl nalezen a je na cestě zpět. 201 Created se objeví po odeslání formuláře nebo API volání, které něco nově vytvoří, a 204 No Content znamená, že akce se podařila, ale není co zobrazit.
3xx přesměrování. To, co jste žádali, žije jinde a prohlížeč tam obvykle automaticky přesměruje. Přesměrování udržuje staré odkazy při životě a hodně záleží na vyhledávacím hodnocení.
4xx chyba klienta. Něco na požadavku bylo špatně na vaší straně: špatná URL, chybějící přihlášení nebo prostředek, který neexistuje. Server je zdravý, jen nemůže přijmout to, co jste poslali.
5xx chyba serveru. Váš požadavek byl v pořádku, ale server při jeho zpracování klopýtl. Tyto kódy ukazují na infrastrukturu webu, ne na vás.
Konkrétní kódy, které si lidé skutečně vyhledávají
200 OK je prostý úspěch. Stránka nebo data se načetly podle očekávání.
301 Moved Permanently sděluje prohlížečům a vyhledávačům, že stránka má nový trvalý domov. Jde o SEO přívětivé přesměrování, protože přenáší hodnotící signály ze staré URL na novou. Použijte ho, když URL měníte natrvalo.
302 Found je dočasné přesměrování. Původní URL je stále tou skutečnou, takže vyhledávače dál indexují ji, ne cíl. Sáhněte po 302 jen tehdy, když je přesun opravdu krátkodobý, například při směrování uživatelů na sezónní vstupní stránku.
304 Not Modified je tichý hrdina rychlého prohlížení. Sděluje prohlížeči, že kopie, kterou už má v cache, je stále aktuální, takže server soubor znovu neposílá. Méně dat, rychlejší stránky.
400 Bad Request znamená, že server nedokázal požadavku vůbec porozumět, často kvůli chybné syntaxi nebo neplatnému parametru.
401 Unauthorized zhruba znamená "nevím, kdo jste, prosím ověřte se". Chybí vám platné přihlašovací údaje.
403 Forbidden je odlišné: server ví, kdo jste, a přesto vás odmítá. Chybí vám oprávnění a opětovné přihlášení nepomůže.
404 Not Found je vůbec nejslavnější kód. Server je naživu a odpověděl vám, ale na dané adrese nic není. Obvykle pochází z překlepnutého odkazu nebo stránky, která byla smazána či přesunuta bez přesměrování.
429 Too Many Requests znamená, že jste narazili na omezení rychlosti (rate limit). Poslali jste příliš mnoho požadavků v příliš krátkém okně a server vás žádá, abyste zpomalili. API to používá neustále.
500 Internal Server Error je obecná odpověď typu "něco se pokazilo". Server narazil na neočekávaný stav a vzdal to, ale neřekne co. Zkontrolujte logy serveru.
502 Bad Gateway se objeví, když jeden server, fungující jako brána nebo proxy, dostane neplatnou odpověď od upstream serveru za sebou. Často jde o známku toho, že backendová aplikace spadla nebo je nedostupná.
503 Service Unavailable znamená, že server je dočasně přetížený nebo mimo provoz kvůli údržbě. Na rozdíl od 500 naznačuje, že problém je krátkodobý a web by se měl brzy vrátit.

Co stavové kódy znamenají pro SEO a ladění
Pro vyhledávací hodnocení je rozdíl mezi 301 a 302 tím, na čem lidé nejčastěji naráží. Trvalý přesun by měl vždy používat 301, aby nová stránka zdědila autoritu té staré; 302 na nesprávném místě může nechat vyhledávače indexovat původní URL a rozdělovat vaše signály. Zároveň velké množství 404 plýtvá crawl budgetem a frustruje návštěvníky, takže se vyplatí rozbité odkazy přesměrovat nebo opravit místo toho, aby dál chátraly.
Při ladění vám rodina napoví, kam se dívat. 4xx ukazuje na požadavek, takže zkontrolujte URL, hlavičky a přihlašovací údaje. 5xx ukazuje na server, takže zkontrolujte logy aplikace, upstream služby a to, zda se právě nepovedlo nasazení. Vlna 502 a 503 často znamená, že backend je nedostupný nebo přetížený, ne chybu v kódu. Přesný stavový kód, který web vrací, můžete prozkoumat pomocí našich nástrojů pro vývojáře, a když 5xx vypadá spíš jako problém s konektivitou než chyba aplikace, rychlé vyhledání DNS potvrdí, zda se doména stále přeloží na správnou adresu.
Často kladené otázky
Je chyba 404 špatná pro můj web?
Pár 404 je normálních a neškodných. Problémy začínají, když oblíbené stránky vrací 404 nebo když se hromadí rozbité interní odkazy, což plýtvá crawl budgetem a frustruje návštěvníky. Přesuňte stránky pomocí přesměrování a opravte špatné odkazy.
Jaký je rozdíl mezi přesměrováním 301 a 302?
301 je trvalé a přenáší hodnotící signály na novou URL, takže ho použijte, když se stránka přesouvá natrvalo. 302 je dočasné a udržuje indexovanou původní URL, takže ho použijte jen pro krátkodobé přesuny.
Jaký je rozdíl mezi 401 a 403?
401 znamená, že jste se neověřili, takže přihlášení může problém vyřešit. 403 znamená, že server vás rozpoznává, ale přesto odmítá přístup, protože vám chybí oprávnění, takže opětovné přihlášení nepomůže.
Co znamená chyba 500 a jak ji opravím?
500 Internal Server Error znamená, že server narazil na neočekávanou chybu při zpracování vašeho požadavku. Zpráva je záměrně obecná, takže oprava obvykle začíná pročtením logů serveru a nalezením skutečné příčiny.
Proč dostávám stavový kód 429?
429 Too Many Requests znamená, že jste narazili na omezení rychlosti za posílání požadavků příliš rychle. Zpomalte, respektujte jakoukoliv hlavičku Retry-After, kterou server vrátí, a přidejte do skriptů a API klientů zpětné odkládání.
Co znamená 503 Service Unavailable?
503 znamená, že server dočasně nedokáže požadavek zpracovat, obvykle kvůli přetížení nebo plánované údržbě. Signalizuje krátkodobý problém, takže by se web měl sám brzy vzpamatovat.
