HTTP status kódy: 200, 301, 404, 5xx a čo s nimi
V skratke: HTTP status kód je trojciferné číslo, ktorým server odpovedá na každý request. Skupina hovorí kategóriu: 2xx = OK, 3xx = redirect, 4xx = chyba klienta, 5xx = chyba servera. Z pohľadu uptime monitoringu nás zaujímajú najmä 5xx a 4xx anomálie.
Kategórie odpovedí
- 1xx Informational - prechodné odpovede, klient bežne nezaznamená.
- 2xx Success - request prebehol úspešne. 200 OK je default.
- 3xx Redirection - klient má ísť inam. 301 permanent, 302 dočasný.
- 4xx Client errors - klient poslal niečo zlé. 404, 401, 403, 429.
- 5xx Server errors - server zlyhal. 500, 502, 503, 504.
2xx: úspech
200 OK - štandardná OK odpoveď. Toto je "healthy" stav, pre ktorý monitorujete.
201 Created - typicky odpoveď na POST, ktorý vytvoril nový resource. API klienti to očakávajú.
204 No Content - úspech, ale server nemá čo vrátiť. DELETE endpointy ho často používajú.
206 Partial Content - server vrátil iba časť (range request). Pri streamingu videa alebo resumable download.
3xx: presmerovanie
301 Moved Permanently - URL sa natrvalo zmenila. Google prenesie SEO equity na novú URL. Použiť pri migrácii domény, prechod z HTTP na HTTPS, prechode na www/non-www.
302 Found / 307 Temporary Redirect - dočasné presmerovanie. Google nepresunie ranking. Použiť pri A/B testovaní, údržbe, alebo keď URL bude časom späť.
308 Permanent Redirect - ako 301, ale zachová HTTP metódu (POST ostane POST). 301 môže klient premeniť na GET.
304 Not Modified - klient má cache, server potvrdzuje, že obsah sa nezmenil. Šetrí bandwidth.
4xx: chyba na strane klienta
400 Bad Request - syntaktická chyba v requeste. Malformed JSON, chýbajúci header, atď.
401 Unauthorized - chýbajúce alebo zlé credentials. Klient musí autentifikovať.
403 Forbidden - klient je autentifikovaný, ale nemá oprávnenie. Pozor: niektoré servery vracajú 403 namiesto 401 z bezpečnostných dôvodov (nezverejnenie existencie resourcu).
404 Not Found - URL neexistuje. Pre monitoring nezáleží, pre SEO áno (uniká link equity).
405 Method Not Allowed - URL existuje, ale neakceptuje danú metódu (napr. POST na endpoint, ktorý očakáva GET).
408 Request Timeout - server čakal na request príliš dlho a uzavrel spojenie.
409 Conflict - request je v konflikte s aktuálnym stavom (napr. update verzie, ktorá už nie je aktuálna).
410 Gone - resource bol natrvalo odstránený. Lepšie než 404 pre Google (signal, že sa nemusí pokúšať reindexovať).
422 Unprocessable Entity - request je syntakticky OK, ale obsahuje semanticky neplatné údaje (failed validation).
429 Too Many Requests - rate limit. Klient musí spomaliť. Server typicky pridáva header Retry-After.
5xx: chyba na strane servera
500 Internal Server Error - generická chyba. Backend vyhodil exception, ktorú aplikácia nezachytila. Vždy alarm pre monitoring.
501 Not Implemented - server nepozná HTTP metódu (napr. starý server nepodporuje PATCH).
502 Bad Gateway - reverse proxy (nginx, Cloudflare) nedostala odpoveď z backend servera. Typicky backend padol alebo timeoutol.
503 Service Unavailable - server je preťažený alebo v údržbe. Často s Retry-After headerom. Toto je plánovaná odpoveď, nie crash.
504 Gateway Timeout - reverse proxy čakala na backend dlhšie ako timeout. Backend bežne stále beží, len pomaly.
520-525 Cloudflare errors - špecifické pre Cloudflare. 520 = backend vrátil čokoľvek nečitateľné, 522 = backend nereagoval (connection timeout), 524 = backend odpovedal príliš pomaly (origin timeout).
Praktické pravidlá pre alerting
- Alert okamžite: 500, 502, 503 (ak nie je naozaj plánovaná údržba), 504, akýkoľvek timeout
- Alert pri opakovaní: jednorazové 5xx môže byť race condition; alert ak rovnaký endpoint padá 2× po sebe
- Sledovať vzostupný trend: dlhodobý rast 4xx môže znamenať broken link, scraper attack alebo rozbitý frontend
- Ignorovať pre alerting: 200-399 v rámci očakávania (sledujte response time namiesto kódu)
Status code + response time = kompletný obraz
Sledovať iba status kód nestačí - server môže vracať 200, ale za 30 sekúnd, čo z pohľadu zákazníka je výpadok. Kvalitný monitoring kombinuje:
- Očakávaný status kód (typicky 200)
- Maximálny response time (typicky 5-10 sekúnd)
- Keyword match v obsahu (kľúčové slovo, ktoré musí byť v HTML)
- SSL valid + nie pred koncom platnosti
Vypadnutie ktoréhokoľvek = alert.
Monitoring s presnou klasifikáciou chýb
ePulzio rozlišuje status kód, response time, keyword match aj SSL stav. Logy pre každú kontrolu.
Vyskúšať 7 dní →