HTTP-statuscodes Referentie
Een doorzoekbaar overzicht van elke officiële HTTP-statuscode — wat elke code betekent en wanneer een server deze moet verzenden, volgens RFC 9110 en gerelateerde RFC's.
194 weergaven
Geen overeenkomende statuscodes.
Waarom Statuscodes Worden Gegroepeerd op het Eerste Cijfer
Elke HTTP-statuscode is een driecijferig getal, en alleen al het eerste cijfer vertelt een client de algemene categorie van het antwoord voordat deze zelfs maar de rest leest — een ontwerpkeuze die is ingebakken in HTTP vanaf de vroegste specificaties en die is doorgezet, vandaag geformaliseerd in RFC 9110, het document dat de oudere RFC 7230-7235-reeks consolideerde en verving om de semantiek van HTTP onafhankelijk van elke afzonderlijke protocolversie te definiëren (HTTP/1.1, HTTP/2, HTTP/3 delen allemaal dezelfde statuscodebetekenissen). 1xx (Informatief) betekent dat het verzoek is ontvangen en begrepen en de verwerking doorgaat — dit zijn voorlopige antwoorden die een client niet als definitief moet behandelen. 2xx (Succes) betekent dat het verzoek is ontvangen, begrepen en geaccepteerd. 3xx (Doorverwijzing) betekent dat verdere actie nodig is om het verzoek te voltooien, meestal het ophalen van een andere URL. 4xx (Clientfout) betekent dat het verzoek, zoals verzonden, een probleem bevat dat de client heeft veroorzaakt — foutieve syntaxis, ontbrekende authenticatie, een bron die niet bestaat. 5xx (Serverfout) betekent dat het verzoek ogenschijnlijk geldig was, maar de server het niet kon vervullen. Dit eerste-cijfersysteem betekent dat een client die alleen het cijfer "4" herkent en verder niets over een specifieke code, nog steeds correct weet dat er iets aan zijn eigen verzoek moet worden gecorrigeerd in plaats van het identiek opnieuw te proberen — dat terugvalgedrag is precies waarom de standaard het verplicht stelt.
Het tweede en derde cijfer verdelen elke klasse in specifieke, gedocumenteerde betekenissen, en van een client wordt verwacht dat deze terugvalt op het algemene klassegedrag voor elke code die hij niet specifiek herkent — dit is waarom obscure of nieuwere codes zoals 226 of 508 nog steeds veilig ongeveer correct kunnen worden afgehandeld door oudere software, zelfs zonder expliciete ondersteuning. Codes worden ook niet vrijelijk verzonnen: het volledige register wordt bijgehouden door IANA (de Internet Assigned Numbers Authority) precies zodat "599" of "250" niet twee verschillende dingen kunnen betekenen op twee verschillende servers — elke code die actief in gebruik is, is terug te voeren op een specifieke RFC die de exacte semantiek ervan definieert, waarvan er verschillende de oorspronkelijke HTTP/1.1-specificatie uitbreiden voor bepaalde protocollen, het meest zichtbaar WebDAV (RFC 4918), waar de codes 207, 208, 422, 423, 424 en 507/508 op deze pagina vandaan komen.
Twee Codes Die de Moeite Waard Zijn om Precies te Kennen: 404 vs. 410
Twee van de meest verwarde codes zijn 404 Not Found en 410 Gone, en het onderscheid is niet cosmetisch — het verandert hoe een zoekmachine en een browser zich gedragen. 404 is opzettelijk dubbelzinnig: de server heeft geen informatie over of de bron ooit bestond op die URL, of deze terug zou kunnen komen, of dat de URL simpelweg verkeerd was getypt. 410 is een opzettelijke, sterkere uitspraak: de bron bestond op precies die URL en is opzettelijk, permanent verwijderd, zonder doorverwijzingsadres — RFC 9110 beveelt 410 expliciet aan specifiek voor dit geval "de toestand is waarschijnlijk permanent," waarbij een 404 de zekerheid zou onderschatten. Zoekmachines behandelen dit in de praktijk anders: een URL die herhaaldelijk 404 teruggeeft, wordt doorgaans pas uit de index verwijderd nadat deze meerdere keren opnieuw is doorzocht over een langere periode, voor het geval hij terugkomt, terwijl een 410 opzettelijke verwijdering signaleert en zoekmachines er over het algemeen sneller op reageren door de pagina eerder uit de index te halen, omdat de server expliciet heeft aangegeven dat deze niet zal terugkeren. Het correct gebruiken van 410 bij het permanent uit dienst nemen van een pagina — in plaats van standaard 404 te gebruiken voor alles — is een kleine maar reële technische SEO-hendel.
- 301 vs. 302 vs. 307 vs. 308: 301 en 308 betekenen beide "permanent verplaatst," terwijl 302 en 307 beide "tijdelijk verplaatst" betekenen — het nieuwere 307/308-paar werd specifiek geïntroduceerd om te garanderen dat de verzoekmethode en -body behouden blijven bij doorverwijzing (een POST blijft een POST), omdat wijdverbreid historisch browsergedrag 301/302-doorverwijzingen stilzwijgend omzette naar een GET, wat het opnieuw indienen van formulieren brak op manieren die de nieuwere codes oplossen.
- 401 vs. 403: 401 Unauthorized betekent technisch gezien "u bent niet geauthenticeerd — log in," ondanks de verwarrende naam; 403 Forbidden betekent "u bent geïdentificeerd, maar u mag hier geen toegang toe hebben," een onderscheid dat veel API's in de praktijk vervagen, maar dat de specificatie duidelijk gescheiden houdt.
- 429 Too Many Requests (RFC 6585) is het standaard antwoord voor snelheidsbeperking en wordt vaak gecombineerd met een
Retry-After-header die de client precies vertelt hoe lang te wachten voordat het opnieuw wordt geprobeerd. - 1xx-codes worden zelden rechtstreeks gezien, omdat de meeste HTTP-clientbibliotheken deze transparant afhandelen voordat uw applicatiecode ooit een antwoord ziet — 100 Continue laat een client bijvoorbeeld controleren of een grote verzoek-body überhaupt de moeite waard is om te verzenden voordat deze wordt verzonden.
Veelgestelde vragen
Wat is het daadwerkelijke verschil tussen 404 en 410?
Beide betekenen dat de bron niet kan worden gevonden, maar 404 laat in het midden of deze ooit bestond of zou kunnen terugkeren, terwijl 410 een opzettelijke uitspraak is dat de bron op die URL bestond en permanent, opzettelijk is verwijderd. Zoekmachines halen een 410-pagina over het algemeen sneller uit de index dan een 404, omdat de server expliciet heeft bevestigd dat de verwijdering permanent is.
Is 418 "I'm a Teapot" een echte, bruikbare statuscode?
Deze ontstond in RFC 2324, het "Hyper Text Coffee Pot Control Protocol" uit 1998, een 1-aprilgrap-RFC. Het was nooit serieus bedoeld, maar bleek nuttig als een onderscheidende, ondubbelzinnige testcode, en RFC 9110 behoudt deze vandaag formeel met een expliciete opmerking dat de status optioneel is en niet wordt verwacht te worden geïmplementeerd door echte servers.
Waarom breken 301- en 302-doorverwijzingen soms formulierindieningen?
Historisch gezien zetten veel browsers stilzwijgend een doorverwezen POST-verzoek om in een GET-verzoek bij het volgen van een 301 of 302, waarbij de ingediende body werd verwijderd. De nieuwere codes 307 (Tijdelijke Doorverwijzing) en 308 (Permanente Doorverwijzing) werden specifiek geïntroduceerd om te garanderen dat de oorspronkelijke HTTP-methode en verzoek-body behouden blijven tijdens de doorverwijzing.
Wat is het verschil tussen 401 en 403?
401 Unauthorized betekent eigenlijk dat de client helemaal niet is geauthenticeerd — ondanks de naam vraagt het om inloggegevens. 403 Forbidden betekent dat de client is geïdentificeerd, maar expliciet geen toestemming heeft om toegang te krijgen tot die specifieke bron. Veel praktijk-API's gebruiken ze losjes of door elkaar, maar de specificatie houdt de betekenissen gescheiden.
Waar komen WebDAV-specifieke codes zoals 507 of 423 vandaan?
Deze zijn gedefinieerd in RFC 4918, de WebDAV-specificatie (Web Distributed Authoring and Versioning), die gewone HTTP uitbreidt met bewerkingen voor extern bestandsbeheer, zoals het vergrendelen van een bron (423 Locked) of het melden dat de server geen opslagruimte meer heeft (507 Insufficient Storage). Ze blijven onderdeel van het officiële IANA HTTP-statuscoderegister naast de kern-HTTP-codes.
Vergelijkbare tools
Probleem melden
HTTP-statuscodes Referentie
Reacties
Nog geen reacties — schrijf de eerste!