Zoek elke HTTP-statuscode op: wat de code betekent, wanneer servers deze versturen en in welke specificatie deze wordt gedefinieerd. Zoek op nummer of trefwoord, filter op klasse en link rechtstreeks naar een code.
De server heeft de verzoekheaders ontvangen en de client mag de hoofdtekst versturen. Dit gebeurt wanneer een client vóór het uploaden van een grote hoofdtekst ‘Expect: 100-continue’ verstuurt.
De server gaat akkoord met een overstap naar het protocol waar de client om heeft gevraagd in de Upgrade-header. Dit gebeurt wanneer een verbinding wordt omgezet naar WebSocket.
De server heeft een WebDAV-verzoek geaccepteerd, maar is nog niet klaar met de verwerking ervan. De code is verwijderd uit latere WebDAV-specificaties en wordt tegenwoordig zelden gebruikt.
Wordt verstuurd vóór het definitieve antwoord, zodat de browser alvast bronnen uit Link-headers kan laden. CDNs en servers gebruiken dit om pagina's sneller te laden.
Het verzoek is geslaagd en heeft een nieuwe resource aangemaakt, meestal aangeduid met de Location-header. Dit gebeurt vaak na een geslaagde POST waarmee een record wordt aangemaakt.
Het verzoek is geaccepteerd voor verwerking, maar de verwerking is nog niet voltooid. Wordt gebruikt door API's die taken in een wachtrij plaatsen, zoals exports of batchtaken.
Het verzoek is geslaagd en er is geen inhoud om terug te sturen. Komt vaak voor bij DELETE-verzoeken en bij het opslaan van gegevens wanneer de client geen antwoordtekst nodig heeft.
De server stuurt alleen het bytebereik terug waar de client om heeft gevraagd. Dit gebeurt bij het streamen van video's, het hervatten van downloads of wanneer een client een Range-header verstuurt.
De resource is permanent verplaatst naar de URL in de Location-header. Browsers en zoekmachines werken hun links bij; sommige clients veranderen POST in GET wanneer ze de omleiding volgen.
De resource staat tijdelijk op een andere URL, vermeld in de Location-header. Komt vaak voor na het inloggen en bij omleidingen voor korte tijd; browsers volgen de omleiding meestal met GET.
De client moet het resultaat met GET ophalen via een andere URL. Wordt gebruikt om na een formulierverzending met POST door te sturen naar een bevestigingspagina (het Post/Redirect/Get-patroon).
De versie in de cache is nog geldig, dus de server stuurt geen hoofdtekst. Dit gebeurt wanneer een browser een bestand in de cache opnieuw controleert met If-None-Match of If-Modified-Since.
De resource staat tijdelijk op een andere URL. De client moet het verzoek opnieuw versturen met dezelfde methode en inhoud. Browsers gebruiken deze code ook intern voor HSTS-omleidingen naar HTTPS.
De resource is permanent verplaatst. De client moet de nieuwe URL gebruiken met dezelfde methode en inhoud. Dit is de permanente tegenhanger van 307 en is geschikt voor het omleiden van POST-verzoeken.
De server kan het verzoek niet verwerken omdat het onjuist is opgebouwd, bijvoorbeeld door ongeldige JSON, een ongeldige queryparameter of een beschadigde cookie.
Het verzoek bevat geen geldige authenticatiegegevens. Ondanks de naam betekent deze code ‘niet geauthenticeerd’. De server stuurt een WWW-Authenticate-header met uitleg over hoe u kunt inloggen.
Gereserveerd voor toekomstig gebruik in de HTTP-specificatie. Sommige API's en betaaldiensten gebruiken deze code wanneer een betaling of abonnement vereist is.
De server begrijpt het verzoek, maar weigert het. Opnieuw inloggen helpt niet. Deze code verschijnt bijvoorbeeld wanneer de benodigde rechten ontbreken, een mapoverzicht is uitgeschakeld of een firewall de client blokkeert.
De server kan de opgevraagde resource niet vinden. Meestal komt dit door een verkeerd getypte of verouderde link, een verwijderde pagina of een onjuiste API-route.
De resource bestaat, maar ondersteunt de gebruikte HTTP-methode niet, bijvoorbeeld een POST-verzoek naar een URL die alleen-lezen is. De reactie vermeldt de toegestane methoden in de Allow-header.
Net als bij 401 moet de client zich eerst verifiëren, maar dan bij een proxy. Deze code komt voor op bedrijfsnetwerken met een proxy waarvoor authenticatie vereist is.
Het verzoek is in strijd met de huidige staat van de resource, bijvoorbeeld door een conflict bij het bewerken of doordat u iets probeert aan te maken dat al bestaat.
De resource is permanent verwijderd en komt niet terug. Anders dan 404 geeft deze code zoekmachines het signaal om de URL sneller uit de index te verwijderen.
Er is niet voldaan aan een voorwaarde in de verzoekheaders, zoals If-Match. Deze code voorkomt dat een resource wordt overschreven als die is gewijzigd sinds de client deze voor het laatst heeft opgehaald.
De inhoud van het verzoek is groter dan de server accepteert. Deze code komt voor bij het uploaden van een bestand dat een limiet overschrijdt, zoals nginx's client_max_body_size.
De URL is langer dan de server kan verwerken. Dit komt meestal doordat een formulier te veel gegevens met GET verstuurt of doordat een omleidingslus steeds parameters toevoegt.
De server ondersteunt de indeling van de inhoud van het verzoek niet, bijvoorbeeld wanneer u XML verstuurt naar een endpoint dat application/json verwacht.
Een 1-aprilgrap uit het Hyper Text Coffee Pot Control Protocol uit 1998: een theepot die weigert koffie te zetten. HTTP reserveert deze code als ongebruikt, maar sommige servers sturen hem als easter egg of om ongewenste bots te weigeren.
Het verzoek is aangekomen bij een server die geen reactie kan geven voor deze host, bijvoorbeeld wanneer een HTTP/2-verbinding opnieuw wordt gebruikt voor een ander domein.
Het verzoek is correct opgebouwd, maar de inhoud is ongeldig, bijvoorbeeld een formulier dat niet aan de validatieregels voldoet. API's gebruiken deze code vaak voor validatiefouten.
De client heeft in een bepaalde periode te veel verzoeken verstuurd. API's gebruiken deze code voor snelheidsbeperking en vermelden vaak in een Retry-After-header wanneer u het opnieuw kunt proberen.
De verzoekheaders zijn te groot, vaak doordat er te veel of te grote cookies zijn. Het probleem is meestal verholpen door de cookies van de site te wissen.
Geen standaardcode. nginx gebruikt deze intern om de verbinding te sluiten zonder een reactie te versturen, vaak om ongewenst verkeer tegen te houden. Clients ontvangen deze code nooit daadwerkelijk.
De resource is om juridische redenen niet beschikbaar, bijvoorbeeld door een gerechtelijk bevel of overheidscensuur. Het nummer verwijst naar de roman Fahrenheit 451.
Geen standaardcode. nginx registreert deze code wanneer de client de verbinding verbreekt voordat de server heeft gereageerd, bijvoorbeeld doordat een gebruiker een trage pagina annuleert of doordat de time-out aan clientzijde verstrijkt.
De server is op een onverwachte fout gestuit en kon het verzoek niet voltooien. Deze algemene fout kan komen door een bug, crash of onjuiste configuratie. De details staan in de serverlogs.
Een gateway of proxy heeft een ongeldige reactie ontvangen van de achterliggende server. Dit gebeurt vaak wanneer de applicatie achter nginx of een load balancer is gecrasht of opnieuw wordt opgestart.
De server kan het verzoek tijdelijk niet verwerken omdat deze overbelast is of wegens onderhoud niet beschikbaar is. Een Retry-After-header kan aangeven wanneer u het opnieuw kunt proberen.
Een gateway of proxy heeft niet op tijd een antwoord van de upstreamserver ontvangen. Dit gebeurt wanneer een backendverzoek te lang duurt, bijvoorbeeld door een lange databasequery.
Er zijn aanvullende extensies nodig om aan het verzoek te voldoen. Deze code is vastgelegd in een experimentele specificatie die inmiddels historisch is.
De client moet zich aanmelden om toegang tot het netwerk te krijgen. Wordt door captive portals op wifi in hotels, luchthavens of cafés verstuurd voordat u inlogt.
Geen standaardcode. Cloudflare geeft deze code terug wanneer de originserver de verbinding heeft geweigerd, meestal omdat de webserver niet actief is of de IP-adressen van Cloudflare blokkeert.
Geen standaardcode. Cloudflare geeft deze code terug wanneer er verbinding is gemaakt met de originserver, maar er binnen de time-out (standaard 100 seconden) geen HTTP-antwoord is ontvangen.
Geen standaardcode. Cloudflare geeft deze code terug wanneer het SSL-certificaat van de originserver ongeldig is en de SSL-modus Full (strict) is ingeschakeld.
Vastgelegd in Cloudflare
Zo gebruik je deze tool
Typ een codenummer (zoals 404 of alleen 5 voor alle serverfouten) of een trefwoord, zoals ‘omleiding’ of ‘time-out’.
Verfijn de lijst met het filter voor de klasse: informatief, succes, omleiding, clientfout of serverfout.
Gebruik ‘Link kopiëren’ bij een code om er een directe link naar te delen, bijvoorbeeld in een bugrapport.
Hoe het werkt
Elke HTTP-respons begint met een statuscode van drie cijfers. Het eerste cijfer bepaalt de klasse: 1xx-informatieve antwoorden, 2xx-succes, 3xx-omleidingen, 4xx-fouten veroorzaakt door het verzoek en 5xx-fouten aan de serverkant. Clients die een specifieke code niet herkennen, behandelen deze als de x00-code van dezelfde klasse. Een onbekende 4xx-code wordt dus behandeld als 400.
De belangrijkste codes zijn vastgelegd in RFC 9110 (HTTP Semantics, 2022), die de oudere RFC 7231 verving. Andere codes komen uit uitbreidingen: WebDAV (RFC 4918), RFC 6585 voor 428, 429, 431 en 511, RFC 7725 voor 451 en RFC 8470 voor 425. RFC 9110 heeft ook twee codes een nieuwe naam gegeven: 413 heet nu “Content Too Large” en 422 “Unprocessable Content”. Je kunt ze nog tegenkomen onder hun oude namen “Payload Too Large” en “Unprocessable Entity”.
Sommige codes die je in logboeken tegenkomt, zijn helemaal geen standaarden. nginx gebruikt 444 en 494–499 intern (499 betekent dat een client het wachten heeft opgegeven), en Cloudflare retourneert 520–526 wanneer het geen geldig antwoord van de oorspronkelijke server kan krijgen. Deze zijn in de lijst gemarkeerd als “Niet-standaard”. De redensteksten (zoals “Not Found”) worden in het Engels weergegeven, zoals ze in de specificaties staan; HTTP/2 en HTTP/3 versturen alleen het nummer.
Voorbeelden
301 of 308 bij het verplaatsen van een site
Beide zijn permanent. Gebruik 301 voor gewone paginaverplaatsingen; gebruik 308 wanneer clients POST- of PUT-verzoeken opnieuw naar de nieuwe URL moeten sturen, omdat sommige clients POST na een 301 wijzigen in GET.
401 tegenover 403
Een API retourneert 401 wanneer er geen token of een verlopen token wordt verzonden; de client moet dan inloggen. De API retourneert 403 wanneer het token geldig is, maar de gebruiker geen toestemming heeft. Opnieuw inloggen helpt dan niet.
Een 502 achter nginx onderzoeken
Een 502 Bad Gateway van nginx betekent dat de applicatie erachter niet goed heeft geantwoord. Controleer of het applicatieproces actief is en wat er in de logboeken staat; 504 betekent in plaats daarvan dat de applicatie te traag antwoordde.
Veelgestelde vragen
Wat is het verschil tussen 404 en 410?
404 betekent dat de server de bron niet kan vinden en zegt niets over de toekomst. 410 betekent dat de bron bewust is verwijderd en niet terugkomt. Daardoor kunnen zoekmachines de URL sneller uit hun index verwijderen.
Moet een validatiefout 400 of 422 opleveren?
Beide worden gebruikt. 400 past bij verzoeken die de server niet kan verwerken, zoals ongeldige JSON. 422 past bij verzoeken die wel correct kunnen worden verwerkt, maar ongeldige waarden bevatten, zoals een e-mailveld zonder @.
Is 418 I'm a teapot een echte statuscode?
De code komt uit een RFC voor 1 april 1998. RFC 9110 reserveert 418 als ongebruikt, zodat de code nergens anders aan wordt toegewezen. Enkele servers geven de code als grap terug, maar hij heeft geen standaardbetekenis.
Waar komt 499 vandaan?
499 is specifiek voor nginx. De code verschijnt in nginx-logboeken wanneer de client de verbinding sluit voordat de server een antwoord verstuurt. De client ontvangt zelf nooit een 499; de code wijst meestal op trage antwoorden of time-outs aan de clientzijde.
Behandelen zoekmachines 302 hetzelfde als 301?
Een 302 geeft aan dat een URL tijdelijk is verplaatst. Zoekmachines houden de oorspronkelijke URL daarom meestal eerst in de index. Als een 302 lange tijd actief blijft, kan Google die behandelen als een permanente omleiding. Gebruik 301 of 308 voor permanente verplaatsingen.
Privacy
De lijst maakt deel uit van de pagina. Zoeken en filteren gebeurt in je browser; je zoektermen worden nergens naartoe verstuurd en niet opgenomen in analytics.