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:
- Verwachte statuscode (typisch 200)
- Maximale response time (typisch 5-10 seconden)
- Keyword match in de inhoud (sleutelwoord dat in de HTML moet zijn)
- 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.
Probeer ePulz.io gratis - 7 dagen zonder creditcard.
Account aanmaken