Ontwikkelaarstool

HTTP-statuscodes

Zoek op nummer of op naam. Wat elke code betekent en wanneer je hem gebruikt.

HTTP-statuscodes Draait op je apparaat
  • Draait in je browser — je tekst wordt nergens naartoe gestuurd
  • Geen aanmelding, geen quota, gratis te gebruiken zo vaak je wilt

Hoe het werkt

De meeste statuscodes spreken voor zich en een handvol is echt verwarrend, vooral die welke op elkaar lijken. Typ een nummer, een woord als forbidden, of 4xx om een hele klasse te zien.

401 en 403, het paar dat iedereen door elkaar haalt

401 Unauthorized betekent eigenlijk niet geauthenticeerd: de server weet niet wie je bent en inloggegevens meesturen kan het oplossen. 403 Forbidden betekent dat de server precies weet wie je bent en je nog steeds geen toegang hebt. De namen zijn historisch en weinig behulpzaam; het onderscheid is belangrijk, want de ene nodigt uit tot inloggen en de andere niet.

301 versus 302, en waarom dat voor SEO uitmaakt

301 is permanent en draagt rankingsignalen over aan het nieuwe adres. 302 is tijdelijk en laat ze bij het oorspronkelijke adres. 302 gebruiken voor een permanente verhuizing is een veelgemaakte en stilletjes dure fout. 307 en 308 zijn de moderne equivalenten die er bovendien voor zorgen dat de methode niet verandert: een POST blijft een POST, wat bij 301 en 302 van oudsher niet zo was.

422 voor validatie

400 Bad Request betekent dat de server het verzoek helemaal niet kon begrijpen. 422 Unprocessable Content betekent dat de server het prima begreep en de inhoud niet klopt: een ontbrekend veld, een ongeldig e-mailadres. De meeste API's zouden 422 moeten teruggeven bij validatiefouten, maar geven uit gewoonte 400.

De klassen

1xx informatief, 2xx geslaagd, 3xx omleiding, 4xx de fout van de client, 5xx de fout van de server. Die laatste splitsing pak je erbij om bij een incident de schuld te verdelen: een piek in 4xx betekent dat aanroepers iets verkeerd doen, een piek in 5xx betekent dat jij het bent.

418

I'm a teapot, afkomstig uit een 1 aprilgrap in 1998, later serieus gestandaardiseerd nadat een poging om het uit implementaties te verwijderen tot ophef leidde. Het is niet bedoeld voor echt gebruik en het is wel een echt onderdeel van de specificatie.

Veelgestelde vragen

HTTP-statuscodes: veelgestelde vragen

Wat is het verschil tussen 401 en 403?

401 betekent niet geauthenticeerd: de server weet niet wie je bent. 403 betekent dat de server dat wel weet en je nog steeds geen toegang hebt.

Moet ik 301 of 302 gebruiken?

301 voor een permanente verhuizing, waarbij de ranking wordt overgedragen. 302 voor een tijdelijke. Gebruik 308 en 307 als de HTTP-methode niet mag veranderen.

Welke code moet een validatiefout teruggeven?

422 Unprocessable Content. 400 betekent dat het verzoek helemaal niet te begrijpen was.

Is 418 echt?

Ja. Het begon als een 1 aprilgrap uit 1998 en is echt gestandaardiseerd, al is het niet bedoeld voor echt gebruik.

Wat betekent 502?

Een proxy kreeg een ongeldig antwoord van de server erachter, meestal ligt de applicatie eruit of crasht ze.