We zijn er allemaal geweest: u bent gedachteloos aan het scrollen op internet wanneer u plotseling verhinderd wordt om verder te zoeken vanwege een HTTP-foutcode. Dit kan een frustrerende ervaring zijn als gebruiker. HTTP-statuscodes gaan echter verder dan alleen het communiceren van een fout - deze codes kunnen ook een succesvolle overdracht betekenen of een omleiding naar een nieuwe site-URL. Wanneer u probeert toegang te krijgen tot een webpagina, stuurt uw browser een verzoek naar de webserver waarop de webpagina wordt gehost.
Afhankelijk van of de verzending succesvol was of niet, kan de webserver een select aantal antwoorden retourneren. Dit worden HTTP-statuscodes genoemd. Ze variëren van informatieve en succesvolle tot omleidingen en foutcodes. Elke statuscode is gemarkeerd met een numerieke identificatiecode tussen 100 en 599. Alle codes en hun betekenis worden beheerd door de Internet Assigned Numbers Authority (IANA).
Hier is een uitputtende lijst van HTTP-statuscodes en wat ze betekenen.
1xx HTTP-statuscodes: informatieve antwoorden
De responscodes van 1xx zijn informatief. Ze geven aan dat uw webbrowser een verzoek heeft gedaan aan de server en wacht op een reactie.
- HTTP-statuscode 100 (Doorgaan): De server heeft de header van uw browserverzoek ontvangen en wacht nu op de body van uw verzoek.
- HTTP-statuscode 101 (schakelprotocol): Uw browser heeft een verzoek om een protocolwijziging verzonden en de server heeft hieraan voldaan.
- HTTP-statuscode 102 (verwerking): Het verzoek van uw browser wordt verwerkt door de server, maar er is nog geen reactie van de server beschikbaar.
- HTTP-statuscode 103 (vroege tips): De server stuurt enkele "vroege hints" naar uw browser om bepaalde bronnen vooraf te laden voordat de server een definitief antwoord geeft.
2xx HTTP-statuscodes: succesvolle reacties
Deze statuscodes informeren de klant (uw webbrowser) dat alles naar behoren wordt verwerkt.
- HTTP-statuscode 200 (OK): Het verzoek is succesvol en het juiste antwoord is gegeven. Afhankelijk van de HTTP-methode (GET, HEAD, PUT/POST of TRACE), zal de respons variëren.
- HTTP-statuscode 201 (gemaakt): Het verzoek van uw browser is geslaagd en als resultaat is er een nieuwe bron aangemaakt. Dit is het gebruikelijke antwoord op een POST en sommige PUT-verzoeken.
- HTTP-statuscode 202 (geaccepteerd): De server heeft het verzoek van uw browser ontvangen, maar heeft er nog niet op gereageerd.
- HTTP-statuscode 203 (niet-geautoriseerde informatie): De server retourneert meta-informatie niet van de oorspronkelijke server, omdat de momenteel beschikbare meta-informatie kan verschillen. Dit wordt gebruikt wanneer de informatie wordt verzameld van een derde partij of een lokale kopie.
- HTTP-statuscode 204 (geen inhoud): Na een succesvol verzoek heeft de server geen inhoud om terug te sturen. Het kan echter de huidige header-informatie retourneren, zodat uw user-agent de in de cache opgeslagen headers bijwerkt.
- HTTP-statuscode 205 (inhoud resetten): Uw browser heeft een reactie van de server ontvangen om de documentweergave te wijzigen.
- HTTP-statuscode 206 (gedeeltelijke inhoud): De server heeft een deel van de inhoud geretourneerd, omdat uw browser hierom heeft gevraagd met de Range-header.
- HTTP-statuscode 207 (meerdere statussen): Voor specifieke situaties waarin meerdere statuscodes nodig zijn, retourneert de server informatie over meerdere bronnen.
- HTTP-statuscode 208 (reeds gerapporteerd): Om onnodige opsomming te voorkomen, retourneert de server informatie dat de interne leden van een WebDAV-element al zijn gerapporteerd. Meestal volgt dit antwoord een 207 (Multi-Status) antwoord.
- HTTP-statuscode 226 (IM gebruikt): De server heeft met succes een GET-methode van uw browser verwerkt om een bijgewerkte versie van een reeds in de cache opgeslagen bron op te halen. Over het algemeen wordt het antwoord geretourneerd als er een of meer kleine wijzigingen zijn aangebracht aan de aangevraagde bron.
3xx HTTP-statuscodes: reacties op omleiding
De statuscodes in de 300-399-reeks geven aan dat de gewenste inhoud naar een andere plaats is verplaatst en laten de browser weten waar deze te vinden is.
- HTTP-statuscode 300 (meerdere keuzes): Er zijn meerdere antwoorden beschikbaar voor het verzoek dat uw webbrowser heeft gedaan.
- HTTP-statuscode 301 (permanent verplaatst): De server leidt uw browser om naar een andere URL omdat de gewenste bron permanent naar een nieuwe locatie is verplaatst.
- HTTP-statuscode 302 (Gevonden): Uw browser heeft een reactie ontvangen dat de gevraagde bron tijdelijk naar een andere locatie is verplaatst. Voor alle volgende verzoeken moet echter dezelfde URL worden gebruikt.
- HTTP-statuscode 303 (zie overige): De server informeert de browser dat de gewenste bron zich op een andere URL bevindt en moet worden opgevraagd met een GET-methode.
- HTTP-statuscode 304 (niet gewijzigd): Het geretourneerde antwoord vertelt de webbrowser dat de gewenste bron niet is gewijzigd sinds de laatste keer dat deze werd opgevraagd. Als gevolg hiervan zou de browser de in de cache opgeslagen versie moeten gebruiken.
- HTTP-statuscode 305 (proxy gebruiken): De server heeft een proxy nodig om de gevraagde bron te retourneren. Deze responscode wordt momenteel niet gebruikt omdat de meeste huidige browsers deze vanwege beveiligingsproblemen niet ondersteunen.
- HTTP-statuscode 306 (van proxy wisselen): De server vereist het gebruik van een specifieke proxy om aan volgende verzoeken te voldoen. Evenzo wordt dit antwoordbericht niet ondersteund vanwege beveiligingsproblemen.
- HTTP-statuscode 307 (tijdelijke omleiding): Een vervanging voor de 302 (Gevonden) statuscode, de server informeert de browser dat de gewenste bron zich tijdelijk op een andere locatie bevindt. Bij het opvragen van de bron moet echter dezelfde HTTP-methode worden gebruikt.
- HTTP-statuscode 308 (permanente omleiding): Een opvolger van de statuscode 301 (Permanent verplaatst). Uw webbrowser probeert toegang te krijgen tot een bron die permanent is verplaatst naar een nieuwe locatie. Dit type omleiding staat niet toe dat de HTTP-aanvraagmethode wordt gewijzigd.
4xx HTTP-statuscodes: Clientfoutreacties
Deze statuscodes geven aan dat er door de klant veroorzaakte fouten aanwezig zijn.
- HTTP-statuscode 400 (slecht verzoek): Er is een fout opgetreden aan de kant van de client en als resultaat kan de server geen antwoord terugsturen.
- HTTP-statuscode 401 (ongeautoriseerd): De server heeft authenticatie nodig om de webbrowser naar de gevraagde bron te laten gaan.
- HTTP-statuscode 402 (betaling vereist): Zoals de naam al doet vermoeden, is deze code gereserveerd voor digitale betalingssystemen. Het wordt echter niet veel gebruikt.
- HTTP-statuscode 403 (verboden): De webbrowser krijgt geen toegang tot de gevraagde bron omdat de client niet over de benodigde machtigingen beschikt.
- HTTP-statuscode 404 (niet gevonden): De gewenste bron kan niet worden gevonden, maar is mogelijk in de toekomst beschikbaar.
- HTTP-statuscode 405 (methode niet toegestaan): De server herkent de HTTP-verzoekmethode die door de webbrowser wordt gebruikt, maar vereist het gebruik van een andere methode om de gewenste bron te leveren.
- HTTP-statuscode 406 (niet acceptabel): De server informeert de client dat geen enkele bron voldoet aan de criteria die door uw webbrowser worden gevraagd.
- HTTP-statuscode 407 (proxy-authenticatie vereist): Vergelijkbaar met de 401 (ongeautoriseerde) statuscode, maar de server vereist authenticatie door een proxy.
- HTTP-statuscode 408 (time-out voor aanvraag): Er is een time-out opgetreden bij het wachten op de client om een verzoek te verzenden binnen het opgegeven tijdsbestek.
- HTTP-statuscode 409 (conflict): Er is een conflict met de huidige status van de gewenste bron, waardoor de server geen antwoord kan terugsturen.
- HTTP-statuscode 410 (Verdwenen): Vergelijkbaar met de statuscode 404 (Niet gevonden), maar deze geeft aan dat de aangevraagde bron in de toekomst niet meer beschikbaar zal zijn.
- HTTP-statuscode 411 (lengte vereist): De server informeert uw webbrowser dat het verzoek een specifieke inhoudslengte moet bevatten om de gewenste bron te retourneren.
- HTTP-statuscode 412 (vooraf geconditioneerd mislukt): Uw webbrowser heeft een verzoek verzonden met voorwaarden, waarvan er één niet kon worden vervuld door de server.
- HTTP-statuscode 413 (Payload te groot): De server wil het verzoek niet verwerken omdat het te groot is.
- HTTP-statuscode 414 (URL te lang): Het verzoek dat door uw webbrowser is verzonden, kan niet door de server worden verwerkt omdat de client te veel gegevens heeft gecodeerd als een queryreeks, die vervolgens als een GET-methode wordt verzonden.
- HTTP-statuscode 415 (niet-ondersteund mediatype): Het verzoek is geweigerd door de server omdat het het gewenste mediatype niet ondersteunt.
- HTTP-statuscode 416 (bereik niet bevredigend): De server kan het door de client gevraagde gedeelte niet leveren.
- HTTP-statuscode 417 (verwachting mislukt): Uw webbrowser heeft een verzoek naar de server gestuurd met de Expect-header, maar de server kan niet aan de vereisten voldoen.
- HTTP-statuscode 418 (ik ben een theepot): Een HTTP Easter Egg, dat deel uitmaakte van een grap van April Fools. Van HTTP-servers wordt niet verwacht dat ze dit protocol implementeren, maar als je nieuwsgierig bent hoe het eruit ziet, ga dan naar Google's Teapot-pagina.
- HTTP-statuscode 421 (verkeerd gericht verzoek): Het verzoek van uw webbrowser is omgeleid naar een andere server, die geen antwoord kon produceren.
- HTTP-statuscode 422 (onverwerkbare entiteit): Er waren semantische fouten in het verzoek dat door uw webbrowser is verzonden en kon daarom niet worden gevolgd.
- HTTP-statuscode 423 (vergrendeld): Toegang tot de gewenste bron is geweigerd omdat deze is vergrendeld.
- HTTP-statuscode 424 (mislukte afhankelijkheid): Het verzoek dat door uw webbrowser is verzonden, is mislukt omdat het afhankelijk was van een ander verzoek, dat ook is mislukt.
- HTTP-statuscode 425 (te vroeg): De server weigert een verzoek te verwerken omdat het opnieuw kan worden afgespeeld.
- HTTP-statuscode 426 (upgrade vereist): Het huidige protocol wordt niet geaccepteerd door de server, dus stuurt de server een Upgrade-header terug naar de client met een verzoek om een protocolupdate.
- HTTP-statuscode 428 (voorwaarde vereist): De webbrowser moet voorwaarden specificeren voor de server om zijn verzoek te verwerken.
- HTTP-statuscode 429 (te veel verzoeken): De server heeft te veel verzoeken van uw webbrowser ontvangen in de toegewezen wachttijd.
- HTTP-statuscode 431 (Verzoekkoptekstvelden te groot): Het verzoek van de client wordt niet verwerkt door de server omdat de verstrekte verzoekheaders te groot zijn. De server is bereid het verzoek te verwerken nadat het formaat van de headers is gewijzigd.
- HTTP-statuscode 451 (niet beschikbaar om juridische redenen): De server weigert om juridische redenen de gewenste bron te leveren.
5xx HTTP-statuscodes: Serverfoutreacties
De 5xx-statuscodes geven aan dat de server een verzoek niet heeft verwerkt.
- HTTP-statuscode 500 (interne serverfout): Dit is een algemeen foutbericht, geleverd door de server, wanneer er een onverwachte situatie is opgetreden.
- HTTP-statuscode 501 (niet geïmplementeerd): De server geeft aan dat hij niet aan het verzoek kan voldoen of dat hij de HTTP-methode niet herkent.
- HTTP-statuscode 502 (slechte gateway): De server retourneert een antwoord dat het diende als gateway of proxy voor een stroomopwaartse server, die een ongeldig antwoord gaf.
- HTTP-statuscode 503 (service niet beschikbaar): De server kan het verzoek niet verwerken omdat het overbelast is of in onderhoud is.
- HTTP-statuscode 504 (Gateway-time-out): De upstream-server heeft niet tijdig gereageerd op de tweede server, die momenteel dienst doet als gateway of proxy. Als gevolg hiervan kan het geen antwoord geven aan de klant.
- HTTP-statuscode 505 (HTTP-versie niet ondersteund): De server ondersteunt de HTTP-methode die in het verzoek wordt gebruikt niet.
- HTTP-statuscode 506 (variant onderhandelt ook): Aangezien HTTP toestaat dat meerdere varianten van een bron zich onder één URL bevinden, kan de server niet beslissen welke (beste) versie als antwoord moet worden gegeven. Dit is meestal te wijten aan een probleem met de serverconfiguratie.
- HTTP-statuscode 507 (onvoldoende opslag): De server kan de representatie van de gewenste bron die nodig is om aan het verzoek te voldoen, niet opslaan.
- HTTP-statuscode 508 (lus gedetecteerd): De server heeft een oneindige lus gedetecteerd en kan het verzoek niet verwerken.
- HTTP-statuscode 510 (niet uitgebreid): De server implementeert extra extensies, die moeten worden gespecificeerd in de aanvraagkop zodat de server hieraan kan voldoen.
- HTTP-statuscode 511 (netwerkverificatie vereist): Verificatie moet worden geleverd door de client, zodat de server toegang kan verlenen aan de client.