Terug naar blog

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

· 6 min leestijd

Een HTTP-statuscode is het antwoord van de server: 2xx OK, 3xx redirect, 4xx clientfout, 5xx serverfout. Wat ze betekenen en welke je monitort.

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

Antwoordcategorieën

  • 1xx Informational - tijdelijke antwoorden, de client merkt ze meestal niet op.
  • 2xx Success - de request was succesvol. 200 OK is de standaard.
  • 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 - het standaard OK-antwoord. Dit is de "healthy" staat waarop je monitort.

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

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

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

3xx: omleiding

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

302 Found / 307 Temporary Redirect - tijdelijke omleiding. Google verplaatst de ranking niet. Gebruik het 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). Bij 301 kan de client de methode omzetten naar GET.

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

Voor monitoring: Configureer bij het controleren van 3xx antwoorden 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 foute credentials. De client moet zich authenticeren.

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

404 Not Found - de URL bestaat niet. Bij uptime monitoring van bewaakte pagina's is een 404 een alert (de pagina is verdwenen); willekeurige 404's van externe bezoekers zijn eerder een SEO-probleem (link equity lekt weg).

405 Method Not Allowed - de URL bestaat maar accepteert de gegeven methode niet (bv. een POST naar een 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 (een signaal om niet te proberen te 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 een 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. een oude server ondersteunt PATCH niet).

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

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

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

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

Praktische regels voor alerting

  • Alert direct: 500, 502, 503 (als het geen echt gepland onderhoud is), 504, elke timeout
  • Alert bij herhaling: een eenmalige 5xx kan een race condition zijn; alert als hetzelfde endpoint 2x achter elkaar valt
  • De opwaartse trend volgen: een langdurige groei van 4xx kan een broken link, een scraper attack of een kapotte frontend betekenen
  • Negeren voor alerting: 200-399 binnen de verwachting (volg de responstijd in plaats van de code)

Statuscode + responstijd = het complete 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 responstijd (typisch 5-10 seconden)
  3. Trefwoordmatch in de inhoud (een sleutelwoord dat in de HTML moet staan)
  4. SSL geldig en niet dicht bij verloop

Het falen van één daarvan = alert.

Monitoring met precieze foutclassificatie

ePulz.io onderscheidt statuscode, responstijd, trefwoordmatch en SSL-staat. Voor elke controle zijn gedetailleerde logs beschikbaar.

Proberen voor 7 dagen →

Delen: Link gekopieerd

Probeer ePulz.io gratis - 7 dagen zonder creditcard.

Account aanmaken