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
| Categorie | Bereik | Betekenis |
|---|---|---|
| 1xx Informationeel | 100–199 | Tussentijdse status (zelden zichtbaar) |
| 2xx Succes | 200–299 | Request verwerkt ✓ |
| 3xx Redirect | 300–399 | Resource verplaatst; client moet elders zoeken |
| 4xx Client-fout | 400–499 | Het verzoek bevat een fout van de client |
| 5xx Server-fout | 500–599 | De 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
| Code | Naam | Wanneer |
|---|---|---|
| 200 | OK | Standaard succes: resource gevonden en teruggegeven |
| 201 | Created | Nieuwe resource aangemaakt (na een POST) |
| 204 | No Content | Succes, maar geen body (typisch na DELETE of PATCH) |
3xx: Redirect
| Code | Naam | Wanneer |
|---|---|---|
| 301 | Moved Permanently | Resource definitief verplaatst; browser (en zoekmachines) passen hun opgeslagen adres aan |
| 302 | Found | Tijdelijke omleiding; browser volgt mee, maar past niets permanent aan |
| 304 | Not Modified | Resource 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.
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
| Code | Naam | Wanneer |
|---|---|---|
| 400 | Bad Request | Ongeldige request-syntax of ongeldige parameters |
| 401 | Unauthorized | Authenticatie vereist (niet ingelogd) |
| 403 | Forbidden | Ingelogd, maar geen rechten voor deze resource |
| 404 | Not Found | Resource bestaat niet op dit pad |
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
| Code | Naam | Wanneer |
|---|---|---|
| 500 | Internal Server Error | Algemene serverfout: iets is mis in de code of configuratie |
| 502 | Bad Gateway | Tussenliggende server (proxy, load balancer) kreeg een ongeldig antwoord van de upstream |
| 503 | Service Unavailable | Server 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/nullgooit de body weg-sonderdrukt de voortgangsbalk-w "%{http_code}\n"print enkel de statuscode
Zo zie je onmiddellijk of een URL 200, 301, 404 of iets anders teruggeeft.
- 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.