HTTP-statuscodes
Alle HTTP-statuscodes in begrijpelijke taal: wat ze betekenen, veelvoorkomende oorzaken, hoe je ze oplost, een voorbeeldantwoord en de RFC die ze definieert.
70 statuscodes
1xx Informatief
Tussentijdse antwoorden: het verzoek is ontvangen en wordt verder verwerkt.
100 Continue Doorgaan De server heeft de request-headers ontvangen en de client mag de body gaan versturen. Het is een tussentijds antwoord dat vóór de definitieve status komt. 101 Switching Protocols Protocolwissel De server stemt in met overschakelen naar het protocol dat de client in de Upgrade-header vroeg, meestal WebSocket. Na dit antwoord spreekt de verbinding het nieuwe protocol. 102 Processing Wordt verwerkt Een tussentijds WebDAV-antwoord dat de client vertelt dat de server nog met een lang verzoek bezig is, zodat hij niet afbreekt. Het is verouderd en wordt nu zelden gestuurd. 103 Early Hints Vroege hints Een tussentijds antwoord dat Link-headers alvast stuurt, zodat de browser CSS en lettertypen kan preloaden of vooraf kan verbinden met andere origins terwijl de server de pagina nog opbouwt.
2xx Succes
Het verzoek is ontvangen, begrepen en geaccepteerd.
200 OK OK Het verzoek is geslaagd. Bij GET bevat de body de resource, bij POST het resultaat van de actie. 201 Created Aangemaakt Het verzoek is geslaagd en heeft een nieuwe resource aangemaakt. De Location-header wijst er meestal naar. 202 Accepted Geaccepteerd Het verzoek is aangenomen voor verwerking, maar de verwerking is nog niet klaar. De uitkomst is bij het antwoord nog onbekend. 203 Non-Authoritative Information Niet-gezaghebbende informatie Het verzoek is geslaagd, maar een transformerende proxy heeft de inhoud van het 200-antwoord van de oorspronkelijke server aangepast. 204 No Content Geen inhoud Het verzoek is geslaagd en er is geen body. Headers kunnen nog metadata bevatten, zoals een nieuwe ETag. 205 Reset Content Inhoud resetten Het verzoek is geslaagd en de client moet de documentweergave resetten, bijvoorbeeld het verzonden formulier leegmaken. Er wordt geen body gestuurd. 206 Partial Content Gedeeltelijke inhoud De server geeft slechts een deel van de resource terug, zoals gevraagd met een Range-header. Content-Range geeft aan welke bytes erin zitten. 207 Multi-Status Multi-status Een WebDAV-antwoord waarvan de XML-body een aparte status bevat voor elk van de resources die door één verzoek zijn geraakt. 208 Already Reported Al gemeld Wordt in een WebDAV-207-body gebruikt om aan te geven dat een resource eerder in het antwoord al is genoemd, zodat er geen duplicaten ontstaan als bindingen lussen vormen. 226 IM Used IM gebruikt De server heeft een GET beantwoord met een of meer instantiemanipulaties (delta-codering), dus de body is een diff en niet de volledige resource.
3xx Omleiding
De client moet nog een stap zetten, meestal een nieuwe URL volgen.
300 Multiple Choices Meerdere keuzes De resource heeft meerdere representaties (taal, formaat) en de client of gebruiker moet er een kiezen. De server kan via Location een voorkeur aangeven. 301 Moved Permanently Permanent verplaatst De resource is permanent verhuisd naar de URL in Location. Clients en zoekmachines moeten voortaan de nieuwe URL gebruiken. 302 Found Gevonden De resource staat tijdelijk op een andere URL. Clients moeten voor volgende verzoeken de oorspronkelijke URL blijven gebruiken. 303 See Other Zie andere De server verwijst de client naar een andere URL om met GET op te halen, meestal om het resultaat van een POST te tonen. 304 Not Modified Niet gewijzigd De gecachte kopie van de client is nog geldig, dus de server stuurt geen body. Het is het antwoord op een voorwaardelijk verzoek met If-None-Match of If-Modified-Since. 305 Use Proxy Gebruik proxy Verouderd. Vroeger vroeg het de client het verzoek te herhalen via de proxy in Location. Browsers negeren het om veiligheidsredenen. 307 Temporary Redirect Tijdelijke doorverwijzing De resource staat tijdelijk op een andere URL, en de client moet het verzoek daar herhalen met dezelfde methode en body. 308 Permanent Redirect Permanente doorverwijzing De resource is permanent verhuisd en clients moeten het verzoek op de nieuwe URL herhalen met dezelfde methode en body.
4xx Clientfouten
Het verzoek bevat een probleem dat de client moet oplossen.
400 Bad Request Ongeldig verzoek De server kan het verzoek niet verwerken omdat het misvormd is: ongeldige syntaxis, verkeerde framing of waarden die hij niet kan interpreteren. 401 Unauthorized Niet geautoriseerd Het verzoek mist geldige inloggegevens. Ondanks de naam betekent het niet-geauthenticeerd: log in of stuur een geldig token. 402 Payment Required Betaling vereist Gereserveerd voor toekomstig gebruik, maar in de praktijk geven diensten het terug als betaling of een betaald abonnement nodig is om verder te gaan. 403 Forbidden Verboden De server begrijpt het verzoek maar weigert toestemming. Opnieuw inloggen helpt niet zolang de rechten niet veranderen. 404 Not Found Niet gevonden De server vindt niets op de gevraagde URL. Het zegt niets over of de resource ooit bestond of terugkomt. 405 Method Not Allowed Methode niet toegestaan De URL bestaat maar ondersteunt de gebruikte HTTP-methode niet. De Allow-header noemt de methodes die wel werken. 406 Not Acceptable Niet aanvaardbaar De server kan geen antwoord maken in een formaat dat de Accept-headers van de client toestaan. 407 Proxy Authentication Required Proxy-authenticatie vereist Een proxy tussen client en server vereist authenticatie voordat hij het verzoek doorstuurt. 408 Request Timeout Time-out van verzoek De server heeft de verbinding gesloten omdat de client niet op tijd een volledig verzoek stuurde. 409 Conflict Conflict Het verzoek botst met de huidige toestand van de resource, zoals een duplicaat of een gelijktijdige bewerking. 410 Gone Verdwenen De resource is permanent weg en er is geen nieuw adres bekend. Anders dan bij 404 stelt de server dit bewust. 411 Length Required Lengte vereist De server vereist een Content-Length-header en het verzoek had er geen. 412 Precondition Failed Voorwaarde mislukt Een voorwaarde in de headers, zoals If-Match of If-Unmodified-Since, bleek onwaar, dus de server heeft het verzoek niet uitgevoerd. 413 Content Too Large Inhoud te groot De request-body is groter dan de server wil of kan verwerken. Vroeger heette dit Payload Too Large. 414 URI Too Long URI te lang De request-URL is langer dan de server wil interpreteren. 415 Unsupported Media Type Niet-ondersteund mediatype De server weigert het verzoek omdat het mediatype (Content-Type) of de codering van de body niet wordt ondersteund. 416 Range Not Satisfiable Bereik niet haalbaar De Range-header vraagt bytes buiten de grootte van de resource. 417 Expectation Failed Verwachting mislukt De server kan niet voldoen aan de eis in de Expect-header van het verzoek, meestal Expect: 100-continue. 418 I'm a teapot Ik ben een theepot Een 1-aprilgrap uit het Hyper Text Coffee Pot Control Protocol: de server is een theepot en weigert koffie te zetten. Sommige sites gebruiken het als grap of om bots te blokkeren. 421 Misdirected Request Verkeerd geadresseerd verzoek Het verzoek kwam bij een server die niet is ingesteld om voor die host te antwoorden, vaak omdat een HTTP/2-verbinding is hergebruikt voor een ander domein. 422 Unprocessable Content Onverwerkbare inhoud Het verzoek is goed gevormd maar bevat semantische fouten, dus de server kan het niet verwerken. Vroeger Unprocessable Entity. 423 Locked Vergrendeld WebDAV: de resource is vergrendeld, dus de methode kan niet worden toegepast. 424 Failed Dependency Afhankelijkheid mislukt WebDAV: de actie is mislukt omdat ze afhing van een andere actie in hetzelfde verzoek die mislukte. 425 Too Early Te vroeg De server weigert een verzoek dat als TLS 1.3-early data (0-RTT) is gestuurd, omdat het opnieuw afgespeeld zou kunnen worden. 426 Upgrade Required Upgrade vereist De server weigert het verzoek met het huidige protocol en eist dat de client upgradet, bijvoorbeeld naar TLS of HTTP/2, zoals de Upgrade-header aangeeft. 428 Precondition Required Voorwaarde vereist De server eist dat het verzoek voorwaardelijk is (If-Match enz.) om verloren updates te voorkomen. 429 Too Many Requests Te veel verzoeken De client heeft te veel verzoeken in een bepaalde tijd gestuurd (rate limiting). Retry-After kan zeggen hoe lang je moet wachten. 431 Request Header Fields Too Large Headervelden te groot De request-headers zijn te groot, één header of alle headers samen. 451 Unavailable For Legal Reasons Niet beschikbaar om juridische redenen De server kan de resource om juridische redenen niet leveren, zoals een gerechtelijk bevel of overheidscensuur. Het getal verwijst naar Fahrenheit 451. 499 Client Closed Request (Niet-standaard) Client heeft verzoek gesloten nginx logt 499 als de client de verbinding sloot voordat de server een antwoord stuurde. De client ziet deze code nooit.
5xx Serverfouten
De server kon een geldig verzoek niet afhandelen.
500 Internal Server Error Interne serverfout De server stuitte op een onverwachte situatie en kon het verzoek niet voltooien. Het is de algemene verzamelcode voor fouten aan de serverkant. 501 Not Implemented Niet geïmplementeerd De server ondersteunt de vereiste functionaliteit niet, meestal de request-methode zelf. 502 Bad Gateway Ongeldige gateway Een gateway of proxy kreeg een ongeldig antwoord van de upstream-server waarnaar hij het verzoek doorstuurde. 503 Service Unavailable Dienst niet beschikbaar De server kan het verzoek tijdelijk niet afhandelen door overbelasting of onderhoud. Retry-After kan zeggen wanneer je het opnieuw kunt proberen. 504 Gateway Timeout Gateway-time-out Een gateway of proxy kreeg niet op tijd een antwoord van de upstream-server. 505 HTTP Version Not Supported HTTP-versie niet ondersteund De server ondersteunt de HTTP-versie uit het verzoek niet. 506 Variant Also Negotiates Variant onderhandelt ook Transparante content negotiation is verkeerd ingesteld: de gekozen variant is zelf ook ingesteld om te onderhandelen, wat een lus oplevert. 507 Insufficient Storage Onvoldoende opslagruimte De server kan de representatie die nodig is om het verzoek te voltooien niet opslaan (geen schijfruimte of quotum meer). Afkomstig uit WebDAV. 508 Loop Detected Lus gedetecteerd De server ontdekte een oneindige lus bij het verwerken van een verzoek met Depth: infinity (WebDAV). Sommige hosts gebruiken het ook voor resourcelimieten. 510 Not Extended Niet uitgebreid Er zijn extra extensies nodig om het verzoek te vervullen (HTTP Extension Framework). Dat framework is inmiddels historisch. 511 Network Authentication Required Netwerkauthenticatie vereist De client moet zich authenticeren om netwerktoegang te krijgen, meestal via een captive portal (wifi in hotel of op een luchthaven). 520 Web Server Returned an Unknown Error (Niet-standaard) Onbekende fout Cloudflare-specifiek: de originserver gaf een leeg, onbekend of onverwacht antwoord. 521 Web Server Is Down (Niet-standaard) Webserver is offline Cloudflare-specifiek: de originserver weigerde de verbinding. 522 Connection Timed Out (Niet-standaard) Verbinding verlopen Cloudflare-specifiek: de TCP-verbinding met de origin kreeg een time-out. 523 Origin Is Unreachable (Niet-standaard) Origin onbereikbaar Cloudflare-specifiek: Cloudflare kan de origin niet bereiken, meestal door DNS- of routeringsproblemen. 524 A Timeout Occurred (Niet-standaard) Er is een time-out opgetreden Cloudflare-specifiek: er is verbinding met de origin, maar de origin stuurde niet op tijd een HTTP-antwoord (standaard 100 seconden). 525 SSL Handshake Failed (Niet-standaard) SSL-handshake mislukt Cloudflare-specifiek: de TLS-handshake tussen Cloudflare en de origin is mislukt. 526 Invalid SSL Certificate (Niet-standaard) Ongeldig SSL-certificaat Cloudflare-specifiek: in SSL-modus Full (strict) is het certificaat van de origin ongeldig, verlopen, zelfondertekend of past het niet bij de hostnaam.