Terug naar blog

HTTP statuscodes uitgelegd: wat 200, 404, 502 betekenen voor monitoring

· 6 min lezen

Kort: Een HTTP statuscode is een driecijferig nummer waarmee de server op elke request antwoordt. De groep zegt de categorie: 2xx = OK, 3xx = redirect, 4xx = clientfout, 5xx = serverfout. Vanuit uptime monitoring perspectief interesseren ons vooral 5xx en 4xx anomalieën.

Kort: Een HTTP statuscode is een driecijferig nummer waarmee de server op elke request antwoordt. De groep zegt de categorie: 2xx = OK, 3xx = redirect, 4xx = clientfout, 5xx = serverfout. Vanuit uptime monitoring perspectief interesseren ons vooral 5xx en 4xx anomalieën.

Antwoordcategorieën

  • 1xx Informational - voorbijgaande antwoorden, de client merkt ze meestal niet op.
  • 2xx Success - de request was succesvol. 200 OK is de default.
  • 3xx Redirection - de client moet ergens anders heen. 301 permanent, 302 tijdelijk.
  • 4xx Client errors - de client stuurde iets verkeerds. 404, 401, 403, 429.
  • 5xx Server errors - de server faalde. 500, 502, 503, 504.

2xx: succes

200 OK - standaard OK-antwoord. Dit is de "healthy" staat waarvoor je monitort.

201 Created - typisch antwoord op een POST die een nieuwe resource maakte. API-clients verwachten het.

204 No Content - succes, maar de server heeft niets om terug te geven. DELETE endpoints gebruiken het vaak.

206 Partial Content - de server gaf maar een deel terug (range request). Bij videostreaming of resumable download.

3xx: omleiding

301 Moved Permanently - de URL veranderde permanent. Google brengt SEO equity over naar de nieuwe URL. Gebruiken bij domeinmigratie, overgang van HTTP naar HTTPS, switch naar www/non-www.

302 Found / 307 Temporary Redirect - tijdelijke omleiding. Google verplaatst de ranking niet. Gebruiken voor A/B testing, onderhoud of wanneer de URL met de tijd terugkomt.

308 Permanent Redirect - zoals 301 maar behoudt de HTTP-methode (POST blijft POST). 301 kan door de client omgezet worden naar GET.

304 Not Modified - de client heeft cache, de server bevestigt dat de inhoud niet veranderde. Bespaart bandbreedte.

Voor monitoring: Bij controle van 3xx antwoorden configureer of de monitor de redirect moet volgen (follow) of als fout moet beschouwen. Sommige DNS hijack aanvallen manifesteren zich als onverwachte 302.

4xx: fout aan clientzijde

400 Bad Request - syntaxisfout in de request. Malformed JSON, ontbrekende header, enz.

401 Unauthorized - ontbrekende of slechte credentials. De client moet authenticeren.

403 Forbidden - de client is geauthenticeerd maar heeft geen permissie. Let op: sommige servers retourneren 403 in plaats van 401 om veiligheidsredenen (niet onthullen dat de resource bestaat).

404 Not Found - de URL bestaat niet. Niet belangrijk voor monitoring, wel voor SEO (link equity lekt).

405 Method Not Allowed - de URL bestaat maar accepteert de gegeven methode niet (bv. POST naar endpoint dat GET verwacht).

408 Request Timeout - de server wachtte te lang op de request en sloot de verbinding.

409 Conflict - de request conflicteert met de huidige staat (bv. update van een versie die niet meer actueel is).

410 Gone - de resource werd permanent verwijderd. Beter dan 404 voor Google (signaal om niet te proberen herindexeren).

422 Unprocessable Entity - de request is syntactisch OK maar bevat semantisch ongeldige data (failed validation).

429 Too Many Requests - rate limit. De client moet vertragen. De server voegt typisch de Retry-After header toe.

5xx: fout aan serverzijde

500 Internal Server Error - generieke fout. De backend gooide een exception die de applicatie niet ving. Altijd alarm voor monitoring.

501 Not Implemented - de server kent de HTTP-methode niet (bv. oude server ondersteunt PATCH niet).

502 Bad Gateway - de reverse proxy (nginx, Cloudflare) kreeg geen antwoord van de backend server. Typisch is de backend gevallen of in timeout gelopen.

503 Service Unavailable - de server is overbelast of in onderhoud. Vaak met Retry-After header. Dit is een geplande reactie, geen crash.

504 Gateway Timeout - de reverse proxy wachtte langer op de backend dan de timeout. De backend draait meestal nog, alleen langzaam.

520-525 Cloudflare errors - specifiek voor Cloudflare. 520 = backend gaf iets onleesbaars terug, 522 = backend antwoordde niet (connection timeout), 524 = backend antwoordde te langzaam (origin timeout).

Praktische regels voor alerting

  • Alert direct: 500, 502, 503 (als geen echt gepland onderhoud), 504, elke timeout
  • Alert bij herhaling: eenmalige 5xx kan race condition zijn; alert als dezelfde endpoint 2× achter elkaar valt
  • Opwaartse trend volgen: lange-termijn groei van 4xx kan broken link, scraper attack of kapotte frontend betekenen
  • Negeren voor alerting: 200-399 binnen verwachting (volg response time in plaats van code)

Statuscode + response time = compleet beeld

Alleen de statuscode volgen is niet genoeg - de server kan 200 retourneren maar in 30 seconden, wat vanuit klantperspectief uitval is. Kwaliteitsmonitoring combineert:

  1. Verwachte statuscode (typisch 200)
  2. Maximale response time (typisch 5-10 seconden)
  3. Keyword match in de inhoud (sleutelwoord dat in de HTML moet zijn)
  4. SSL geldig + niet vóór einde geldigheid

Falen van eender welke = alert.

Monitoring met precieze foutclassificatie

ePulz.io onderscheidt statuscode, response time, keyword match en SSL-staat. Logs voor elke controle.

Proberen voor 7 dagen →


Probeer ePulz.io gratis - 7 dagen zonder creditcard.

Account aanmaken