← Terug naar kennisbank HOSTING

HTTP-statuscodes uitgelegd — alle codes met fixes per scenario

Een 404, 502, 522, 429 of 308. De meeste developers herkennen ze, maar als je site eruit klapt en je ziet een 4xx of 5xx wil je in mensentaal weten wat het betekent en hoe je 't oplost. Dit overzicht heeft per code een eigen detailpagina met oorzaken en fixes uit dagelijkse support-praktijk — geen Wikipedia-uitleg, maar concreet wat je doet als je 'm tegenkomt.

Snel zoeken

Klik op de code die je ziet in je browser of error-log:

2xx — Succes

  • 200 OK — alles werkt zoals verwacht. Geen detail-pagina nodig.
  • 201 Created — nieuwe resource aangemaakt (POST/PUT-API responses).
  • 204 No Content — verzoek gelukt, maar geen body terug.

3xx — Redirects

  • 301 Moved Permanently — permanente redirect, link-equity wordt doorgegeven aan nieuwe URL
  • 302 Found — tijdelijke redirect, gebruik 301 voor permanente moves (SEO-impact)
  • 303 See Other — vergelijkbaar met 302 maar voor POST → GET-redirects
  • 304 Not Modified — cache-hit, browser hergebruikt lokale versie
  • 307 Temporary Redirect — strikt-tijdelijk, behoudt HTTP-method (i.t.t. 302)
  • 308 Permanent Redirect — modernere 301, behoudt HTTP-method

4xx — Fouten aan client-zijde

  • 400 Bad Request — server snapt het verzoek niet (foute syntax, missende headers)
  • 401 Unauthorized — authenticatie ontbreekt of klopt niet
  • 402 Payment Required — zelden gebruikt, gereserveerd voor toekomstig betaal-systeem
  • 403 Forbidden — server begrijpt het verzoek maar weigert toegang
  • 404 Not Found — pagina bestaat niet, meest gegoogleerde HTTP-code
  • 405 Method Not Allowed — je probeert POST waar alleen GET is toegestaan (of andersom)
  • 406 Not Acceptable — server kan geen response leveren in het gevraagde format
  • 408 Request Timeout — client deed te lang over de request
  • 409 Conflict — vooral bij Git of conflicting API-states
  • 410 Gone — resource is permanent weg (sterker signaal dan 404 voor SEO)
  • 411 Length Required — missende Content-Length header
  • 412 Precondition Failed — If-Match-header faalt
  • 413 Payload Too Large — upload te groot, veel WordPress-meldingen
  • 414 URI Too Long — URL boven server-limiet (meestal 8KB)
  • 415 Unsupported Media Type — verkeerde Content-Type
  • 418 I'm a teapot — april-grap uit RFC 2324, niemand gebruikt 'm serieus
  • 422 Unprocessable Entity — semantisch invalide (Laravel validatie-fouten)
  • 429 Too Many Requests — rate-limit bereikt
  • 451 Unavailable For Legal Reasons — geblokkeerd door overheid/rechter

5xx — Fouten aan server-zijde

  • 500 Internal Server Error — PHP-fatal, .htaccess-fout, of plugin-conflict
  • 501 Not Implemented — server kent het HTTP-verb niet
  • 502 Bad Gateway — reverse-proxy (Nginx, Cloudflare) krijgt fout van origin
  • 503 Service Unavailable — tijdelijk overbelast of in maintenance
  • 504 Gateway Timeout — reverse-proxy wachtte te lang op origin
  • 505 HTTP Version Not Supported — client gebruikt te oude HTTP-versie
  • 508 Loop Detected — oneindige redirect-loop in WebDAV

5xx Cloudflare-specifiek

Cloudflare voegt eigen error-codes toe wanneer hun proxy een probleem detecteert vóórdat het verzoek je origin-server bereikt:

  • 520 Web Server Returned an Unknown Error — Cloudflare snapt origin's response niet
  • 521 Web Server Is Down — origin-server reageert helemaal niet
  • 522 Connection Timed Out — TCP-verbinding naar origin lukt niet binnen ~15s
  • 523 Origin Is Unreachable — routing-probleem tussen Cloudflare en origin
  • 524 A Timeout Occurred — verbinding gemaakt maar geen response binnen 100s
  • 525 SSL Handshake Failed — SSL-config mismatch tussen Cloudflare en origin
  • 526 Invalid SSL Certificate — origin-cert niet geldig of verlopen

Wat ik dagelijks tegenkom

De codes die ik in support-werk verreweg het meest tegenkom:

  1. 500 Internal Server Error — vaak .htaccess typo of plugin-conflict
  2. 404 Not Found — permalinks-blok ontbreekt na hosting-migratie
  3. 502 Bad Gateway — PHP-FPM crashte of workers uitgeput
  4. 413 Payload Too Large — WordPress-upload boven hoster-limiet
  5. 522 Connection Timed Out — origin-server zelf down terwijl Cloudflare nog antwoordt

De rest zie ik occasioneel — 401's bij API-werk, 429's bij brute-force-pogingen op wp-login, 525's bij verkeerde Cloudflare SSL-config. Allemaal vindbaar via de links hierboven.

Hoe lees je een status-code in je browser?

Drie plekken waar je 'm typisch ziet:

  • De pagina zelf — sommige errors tonen een grote 500/404/502 in het midden
  • Browser DevTools (F12) → Network-tab — klik op de eerste request, kijk in "Status"-kolom
  • Hosting error_log — meestal in ~/error_log of via cPanel/Plesk → Error Logs

Voor diepere analyse: gebruik mijn HTTP headers viewer om alle response-headers van een URL te zien, of de redirect tracer om door 3xx-ketens te lopen.