Ga naar hoofdinhoud

Statuscodes

De server antwoordt op elk request met een statuscode: een driecijferig getal dat aangeeft of het verzoek gelukt is.

HTTP/1.1 404 Not Found

Vijf categorieën

CategorieBereikBetekenis
1xx Informationeel100–199Tussentijdse status (zelden zichtbaar)
2xx Succes200–299Request verwerkt ✓
3xx Redirect300–399Resource verplaatst; client moet elders zoeken
4xx Client-fout400–499Het verzoek bevat een fout van de client
5xx Server-fout500–599De server kon het verzoek niet verwerken

De eerste digit geeft altijd de categorie, handig als je een onbekende code ziet. Een statuscode is meteen een eerste diagnose-instrument:

  • 4xx → controleer eerst je eigen request: klopt de URL, de methode, de headers, de body?
  • 5xx → het probleem zit niet bij jou; de server zelf loopt vast.

Veelgebruikte statuscodes

2xx: Succes

CodeNaamWanneer
200OKStandaard succes: resource gevonden en teruggegeven
201CreatedNieuwe resource aangemaakt (na een POST)
204No ContentSucces, maar geen body (typisch na DELETE of PATCH)

3xx: Redirect

CodeNaamWanneer
301Moved PermanentlyResource definitief verplaatst; browser (en zoekmachines) passen hun opgeslagen adres aan
302FoundTijdelijke omleiding; browser volgt mee, maar past niets permanent aan
304Not ModifiedResource niet veranderd; browser mag zijn opgeslagen versie gebruiken

Bij een redirect stuurt de server mee waar de client naartoe moet. Hoe die informatie precies wordt doorgegeven, zie je in HTTP-headers.

301 vs. 302

Gebruik 301 bij een permanente verhuis (bv. oude URL → nieuwe URL na een herstructurering). Gebruik 302 voor tijdelijke omleidingen (bv. onderhoudspagina, of inlog-redirect). Zoekmachines volgen 301 mee en updaten hun index; bij 302 bewaren ze de originele URL.

4xx: Client-fouten

CodeNaamWanneer
400Bad RequestOngeldige request-syntax of ongeldige parameters
401UnauthorizedAuthenticatie vereist (niet ingelogd)
403ForbiddenIngelogd, maar geen rechten voor deze resource
404Not FoundResource bestaat niet op dit pad
401 vs. 403

401 betekent "Ik weet niet wie je bent, log in." 403 betekent "Ik weet wie je bent, maar je mag dit niet."

5xx: Server-fouten

CodeNaamWanneer
500Internal Server ErrorAlgemene serverfout: iets is mis in de code of configuratie
502Bad GatewayTussenliggende server (proxy, load balancer) kreeg een ongeldig antwoord van de upstream
503Service UnavailableServer is tijdelijk niet beschikbaar (overbelast of in onderhoud)

Statuscodes aflezen met curl

De eenvoudigste manier om enkel de statuscode op te vragen:

curl -o /dev/null -s -w "%{http_code}\n" https://www.example.com
  • -o /dev/null gooit de body weg
  • -s onderdrukt de voortgangsbalk
  • -w "%{http_code}\n" print enkel de statuscode

Zo zie je onmiddellijk of een URL 200, 301, 404 of iets anders teruggeeft.

Onthoud
  • 2xx = succes, 3xx = redirect, 4xx = client-fout, 5xx = server-fout.
  • De meestgebruikte: 200 OK, 201 Created, 204 No Content, 301 Moved Permanently, 302 Found, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Internal Server Error.
  • 401 = niet ingelogd; 403 = ingelogd maar geen toegang.