Zpět na blog

HTTP status kódy vysvětlené: co 200, 404, 502 znamenají pro monitoring

· 6 min čtení

Ve zkratce: HTTP status kód je trojciferné číslo, kterým server odpovídá na každý request. Skupina říká kategorii: 2xx = OK, 3xx = redirect, 4xx = chyba klienta, 5xx = chyba serveru. Z pohledu uptime monitoringu nás zajímají hlavně 5xx a 4xx anomálie.

Ve zkratce: HTTP status kód je trojciferné číslo, kterým server odpovídá na každý request. Skupina říká kategorii: 2xx = OK, 3xx = redirect, 4xx = chyba klienta, 5xx = chyba serveru. Z pohledu uptime monitoringu nás zajímají hlavně 5xx a 4xx anomálie.

Kategorie odpovědí

  • 1xx Informational - přechodné odpovědi, klient běžně nezaznamená.
  • 2xx Success - request proběhl úspěšně. 200 OK je default.
  • 3xx Redirection - klient má jít jinam. 301 permanent, 302 dočasný.
  • 4xx Client errors - klient poslal něco špatného. 404, 401, 403, 429.
  • 5xx Server errors - server selhal. 500, 502, 503, 504.

2xx: úspěch

200 OK - standardní OK odpověď. Toto je "healthy" stav, pro který monitorujete.

201 Created - typicky odpověď na POST, který vytvořil nový resource. API klienti to očekávají.

204 No Content - úspěch, ale server nemá co vrátit. DELETE endpointy ho často používají.

206 Partial Content - server vrátil jen část (range request). Při streamingu videa nebo resumable download.

3xx: přesměrování

301 Moved Permanently - URL se natrvalo změnila. Google přenese SEO equity na novou URL. Použít při migraci domény, přechodu z HTTP na HTTPS, přechodu na www/non-www.

302 Found / 307 Temporary Redirect - dočasné přesměrování. Google nepřesune ranking. Použít při A/B testování, údržbě nebo když URL bude časem zpět.

308 Permanent Redirect - jako 301, ale zachová HTTP metodu (POST zůstane POST). 301 může klient přeměnit na GET.

304 Not Modified - klient má cache, server potvrzuje, že obsah se nezměnil. Šetří bandwidth.

Pro monitoring: Při kontrole 3xx odpovědí nakonfigurujte, zda má monitor sledovat redirect (follow) nebo považovat redirect za chybu. Některé DNS hijack útoky se projeví jako neočekávané 302.

4xx: chyba na straně klienta

400 Bad Request - syntaktická chyba v requestu. Malformed JSON, chybějící header, atd.

401 Unauthorized - chybějící nebo špatné credentials. Klient musí autentifikovat.

403 Forbidden - klient je autentifikován, ale nemá oprávnění. Pozor: některé servery vracejí 403 místo 401 z bezpečnostních důvodů (nezveřejnění existence resourcu).

404 Not Found - URL neexistuje. Pro monitoring nezáleží, pro SEO ano (uniká link equity).

405 Method Not Allowed - URL existuje, ale neakceptuje danou metodu (např. POST na endpoint, který očekává GET).

408 Request Timeout - server čekal na request příliš dlouho a uzavřel spojení.

409 Conflict - request je v konfliktu s aktuálním stavem (např. update verze, která už není aktuální).

410 Gone - resource byl natrvalo odstraněn. Lepší než 404 pro Google (signal, že se nemusí pokoušet reindexovat).

422 Unprocessable Entity - request je syntakticky OK, ale obsahuje sémanticky neplatná data (failed validation).

429 Too Many Requests - rate limit. Klient musí zpomalit. Server typicky přidává header Retry-After.

5xx: chyba na straně serveru

500 Internal Server Error - generická chyba. Backend vyhodil exception, kterou aplikace nezachytila. Vždy alarm pro monitoring.

501 Not Implemented - server nezná HTTP metodu (např. starý server nepodporuje PATCH).

502 Bad Gateway - reverse proxy (nginx, Cloudflare) nedostala odpověď z backend serveru. Typicky backend padl nebo timeoutoval.

503 Service Unavailable - server je přetížený nebo v údržbě. Často s Retry-After headerem. Toto je plánovaná odpověď, ne crash.

504 Gateway Timeout - reverse proxy čekala na backend déle než timeout. Backend běžně stále běží, jen pomalu.

520-525 Cloudflare errors - specifické pro Cloudflare. 520 = backend vrátil cokoli nečitelné, 522 = backend nereagoval (connection timeout), 524 = backend odpověděl příliš pomalu (origin timeout).

Praktická pravidla pro alerting

  • Alert okamžitě: 500, 502, 503 (pokud není opravdu plánovaná údržba), 504, jakýkoli timeout
  • Alert při opakování: jednorázový 5xx může být race condition; alert pokud stejný endpoint padá 2× po sobě
  • Sledovat vzestupný trend: dlouhodobý růst 4xx může znamenat broken link, scraper attack nebo rozbitý frontend
  • Ignorovat pro alerting: 200-399 v rámci očekávání (sledujte response time místo kódu)

Status code + response time = kompletní obraz

Sledovat jen status kód nestačí - server může vracet 200, ale za 30 sekund, což z pohledu zákazníka je výpadek. Kvalitní monitoring kombinuje:

  1. Očekávaný status kód (typicky 200)
  2. Maximální response time (typicky 5-10 sekund)
  3. Keyword match v obsahu (klíčové slovo, které musí být v HTML)
  4. SSL valid + ne před koncem platnosti

Výpadek kteréhokoli = alert.

Monitoring s přesnou klasifikací chyb

ePulz.io rozlišuje status kód, response time, keyword match i SSL stav. Logy pro každou kontrolu.

Vyzkoušet na 7 dní →


Vyzkoušejte ePulz.io zdarma - 7 dní bez kreditní karty.

Vytvořit účet