Wat is een HTTP status code?
HTTP-status codes zijn numerieke codes die worden gebruikt om de status van een HTTP-verzoek tussen een client en een server aan te geven. Deze codes geven informatie over het resultaat van het verzoek en eventuele problemen die zijn opgetreden tijdens het proces. In dit artikel zullen we de verschillende categorieën van HTTP-status codes verkennen en hun betekenissen uitleggen.
Wat maakt de HTTP response codes belangrijk voor SEO?
In de wereld van zoekmachine optimalisatie (search engine optimization; SEO) spelen verschillende factoren een cruciale rol bij het verbeteren van de zichtbaarheid en rangschikking van een website in zoekresultaten. Eén van deze factoren zijn de HTTP-status codes. Hoewel ze technisch van aard zijn, hebben ze een directe invloed op hoe zoekmachines zoals Google, Bing en anderen jouw website begrijpen en indexeren. Laten we eens dieper ingaan op waarom deze status codes zo belangrijk zijn voor SEO.
Indexeerbaarheid van de pagina’s
HTTP-status codes geven zoekmachines belangrijke informatie over de status van een pagina. Bijvoorbeeld, de status code “200 OK” geeft aan dat de pagina succesvol is geladen. Dit betekent dat de inhoud van de pagina beschikbaar is voor indexering door zoekmachines. Als een pagina echter een “404 Not Found” of “410 Gone” status code retourneert, geeft dit aan dat de pagina niet beschikbaar is, wat kan resulteren in het niet indexeren ervan door zoekmachines.
Figuur 1. Een 404-foutmelding op de site van de Reputatiefabriek
Doorverwijzingen en omleidingen
HTTP-status codes worden ook gebruikt om doorverwijzingen en omleidingen van pagina’s aan te geven. Het correct implementeren van doorverwijzing-statuscodes, zoals “301 Moved Permanently” voor permanente omleidingen en “302 Found” voor tijdelijke omleidingen, is essentieel voor het behouden van de SEO-waarde van pagina’s die zijn verplaatst of verwijderd.
Gebruikerservaring en laadtijden
Sommige status codes, zoals “500 Internal Server Error” en “503 Service Unavailable”, geven problemen aan aan de serverkant die de gebruikerservaring kunnen beïnvloeden en kunnen leiden tot een lagere rangschikking in zoekresultaten. Zoekmachines geven de voorkeur aan websites die snel laden en een goede gebruikerservaring bieden, dus het vermijden van deze foutcodes is cruciaal voor een effectieve SEO-strategie.
Canonicalisatie en duplicate content
Door de juiste status codes te gebruiken, zoals “rel=canonical” in combinatie met een “301 Moved Permanently” doorverwijzing, kun je zoekmachines helpen bij het begrijpen van welke versie van een pagina de voorkeur versie is en voorkomen dat duplicate content problemen ontstaan die de SEO-prestaties kunnen schaden.
Welke HTTP-status codes zijn er?
HTTP-status codes worden in drie cijfers weergegeven en zijn onderverdeeld in vijf hoofdcategorieën:
- 1xx: Informatief
- 2xx: Succesvol
- 3xx: Omleiding
- 4xx: Clientfout
- 5xx: Serverfout
Laten we elk van deze categorieën nader bekijken.
a. De 1xx informatieve status codes (100, 101, 102 en 103)
Informatieve status codes worden gebruikt om aan te geven dat een verzoek is ontvangen en wordt verwerkt, maar dat er nog verdere actie nodig is van de client. Hieronder staat een overzicht van de verschillende 1xx informatieve status codes:
100 Continue (Doorgaan):
De statuscode 100 Continue wordt gebruikt om aan te geven dat het eerste deel van een verzoek is ontvangen en dat de client nu het vervolg van het verzoek kan verzenden. Deze statuscode wordt vaak gebruikt in situaties waarin de server tijd nodig heeft om een verzoek te verwerken en wil aangeven aan de client dat het verzoek is ontvangen en dat de verwerking doorgaat.
101 Switching Protocols (Protocol wijzigen):
De statuscode 101 Switching Protocols wordt gebruikt wanneer de server de gevraagde upgrade naar een ander protocol accepteert. Dit kan bijvoorbeeld voorkomen bij het schakelen van HTTP naar HTTPS. Het informeert de client dat de server klaar is om over te schakelen naar een ander protocol en geeft de client de details over hoe dit moet gebeuren.
102 Processing (Verwerken):
De statuscode 102 Processing wordt gebruikt om aan te geven dat de server het verzoek heeft ontvangen en dat het wordt verwerkt, maar dat de verwerking nog niet is voltooid. Deze statuscode kan worden gebruikt in situaties waarin de verwerking van een verzoek lang kan duren en de server wil aangeven dat het verzoek is ontvangen en wordt verwerkt.
103 Early Hints (Vroegtijdige hints):
De statuscode 103 Early Hints wordt gebruikt om vroegtijdige informatie naar de client te sturen voordat het eigenlijke antwoord wordt verzonden. Dit kan worden gebruikt om de client alvast te informeren over bronnen die binnenkort beschikbaar zullen zijn, waardoor de client alvast kan beginnen met het ophalen van die bronnen voordat het volledige antwoord is ontvangen.
Hoewel deze 1xx HTTP-statuscodes minder vaak voorkomen dan de meer bekende statuscodes zoals 200 OK of 404 Not Found, spelen ze een belangrijke rol in het communicatieproces tussen servers en clients. Ze bieden waardevolle informatie en kunnen bijdragen aan een efficiënte en effectieve uitwisseling van gegevens op het web. Het begrijpen van deze informatieve status codes kan daarom helpen om het webverkeer beter te begrijpen en te optimaliseren voor een betere gebruikerservaring.
b. De 2xx succesvolle status codes (200 t/m 226)
Succesvolle status codes geven aan dat het verzoek van de client met succes is ontvangen, begrepen, geaccepteerd en verwerkt door de server. Hieronder staan ze alle tien beschreven:
200 OK (OK):
De status code 200 OK is een van de meest voorkomende en belangrijke statuscodes. Het geeft aan dat het verzoek succesvol is ontvangen, begrepen en geaccepteerd door de server. De bijbehorende inhoud wordt geleverd in de respons en is meestal de verwachte webpagina of bron.
201 Created (Gemaakt):
De statuscode 201 Created wordt gebruikt wanneer een nieuw bronobject succesvol is gemaakt door de server als gevolg van het verzoek van de client. Het wordt vaak gebruikt bij het maken van nieuwe bronnen, zoals het uploaden van een bestand of het maken van een nieuw gebruikersprofiel.
202 Accepted (Geaccepteerd):
De statuscode 202 Accepted geeft aan dat het verzoek van de client is ontvangen en geaccepteerd voor verwerking, maar dat de verwerking nog niet is voltooid. Dit kan voorkomen bij lange verwerkingstaken waarbij de server tijd nodig heeft om het verzoek af te handelen.
203 Non-Authoritative Information (Niet-autoritatieve informatie):
De statuscode 203 Non-Authoritative Information wordt gebruikt wanneer de server een deel van de inhoud van een verzoek retourneert, maar niet de bron van gezag is voor die inhoud. Dit kan voorkomen bij het gebruik van een caching-proxy, waarbij de proxy een kopie van de inhoud levert in plaats van de originele server.
204 No Content (Geen inhoud):
De statuscode 204 No Content wordt gebruikt wanneer de server met succes het verzoek heeft ontvangen, begrepen en verwerkt, maar geen inhoud heeft om terug te sturen naar de client. Het wordt vaak gebruikt bij het verwerken van verzoeken die geen directe inhoud-reactie vereisen, zoals het bijwerken van gegevens.
205 Reset Content (Inhoud resetten):
De statuscode 205 Reset Content wordt gebruikt om aan te geven dat de client zijn weergave moet resetten van de inhoud die is verzonden in het verzoek. Dit kan bijvoorbeeld worden gebruikt na het verzenden van een formulier, waarbij de client wordt gevraagd om het formulierveld leeg te maken na het indienen van de gegevens.
206 Partial Content (Gedeeltelijke inhoud):
De statuscode 206 Partial Content wordt gebruikt wanneer de server slechts een deel van de gevraagde bron kan leveren, meestal in reactie op een verzoek voor een groot bestand waarvan slechts een deel nodig is. Deze statuscode wordt vaak gebruikt bij het streamen van media of het downloaden van grote bestanden in delen.
226 IM Used (IM gebruikt):
De statuscode 226 IM Used wordt gebruikt wanneer de server de aangegeven media-instantie heeft teruggevonden en deze volgens de opgegeven content codering aan de client heeft teruggezonden. Dit wordt vaak gebruikt bij het leveren van dynamische inhoud waarbij verschillende content coderingen beschikbaar zijn.
Deze succesvolle HTTP-statuscodes spelen een belangrijke rol bij het bieden van een naadloze en efficiënte webervaring voor gebruikers. Door deze status codes correct te begrijpen en te gebruiken, kunnen servers en clients effectief communiceren en een breed scala aan interactieve en dynamische web toepassingen mogelijk maken.
c. De 3xx omleiding status codes (300 t/m 308)
Figuur 2. Een schematische afbeelding van wat er aan interactie is tussen een client en een server bij een 301-redirect. Bron: https://www.seobility.net/
Omleiding status codes beginnen met het getal “3” en worden gebruikt om aan te geven dat de client extra actie moet ondernemen om het verzoek te voltooien. Dit kan bijvoorbeeld betekenen dat de gevraagde bron is verplaatst naar een andere locatie.
301 Moved Permanently (Permanent verplaatst):
De statuscode 301 Moved Permanently wordt gebruikt om aan te geven dat de gevraagde bron permanent is verplaatst naar een nieuwe URL. Dit betekent dat zoekmachines en browsers moeten onthouden dat de oude URL niet langer geldig is en dat ze moeten doorverwijzen naar de nieuwe locatie om de juiste inhoud te vinden.
302 Found (Gevonden):
De statuscode 302 Found wordt gebruikt om aan te geven dat de gevraagde bron tijdelijk is verplaatst naar een andere URL. Dit betekent dat de wijziging mogelijk slechts van korte duur is en dat zoekmachines en browsers moeten blijven verwijzen naar de oorspronkelijke URL.
303 See Other (Zie andere):
De statuscode 303 See Other wordt gebruikt om aan te geven dat de client naar een andere locatie moet worden omgeleid om de gevraagde bron te verkrijgen. Dit wordt vaak gebruikt na een POST-verzoek om te voorkomen dat de client het verzoek herhaalt bij een vernieuwing van de pagina.
307 Temporary Redirect (Tijdelijke omleiding):
De statuscode 307 Temporary Redirect is vergelijkbaar met 302 Found, maar vereist dat de client de verzoek-gegevens niet wijzigt bij het volgen van de omleiding. Dit is nuttig bij het handhaven van de verzoek-methode bij het volgen van een tijdelijke omleiding.
308 Permanent Redirect (Permanente omleiding):
De statuscode 308 Permanent Redirect is vergelijkbaar met 301 Moved Permanently, maar vereist dat de client de gegevens niet wijzigt bij het volgen van de omleiding. Dit helpt bij het handhaven van de consistentie van verzoek-methoden bij permanente omleidingen.
Door deze omleidings-HTTP-statuscodes correct te implementeren, kunnen website-eigenaren en ontwikkelaars ervoor zorgen dat gebruikers naadloos worden geleid naar de juiste webbronnen, zelfs wanneer er wijzigingen worden aangebracht in de URL-structuur of de locatie van bepaalde pagina’s. Dit draagt bij aan een betere gebruikerservaring en helpt bij het handhaven van de consistentie van de website-indexering en rangschikking in zoekmachines.
d. De 4xx client-fout status codes (400 t/m 451)
Client-foutstatus codes geven aan dat er een probleem is opgetreden aan de kant van de client, zoals een verkeerd geformuleerd verzoek of een niet-geautoriseerde toegangspoging.
400 Bad Request (Foute aanvraag):
De statuscode 400 Bad Request wordt geretourneerd wanneer de server het verzoek van de client niet kan begrijpen vanwege een onjuiste syntaxis, slechte opmaak of andere fouten aan de kant van de client. Dit kan bijvoorbeeld gebeuren wanneer de client een ongeldige URL of ontbrekende verplichte parameters heeft verzonden.
401 Unauthorized (Ongeautoriseerd):
De statuscode 401 Unauthorized wordt gebruikt wanneer de client niet geautoriseerd is om toegang te krijgen tot de gevraagde bron. Dit kan voorkomen bij pogingen om toegang te krijgen tot beveiligde pagina’s zonder de juiste authenticatiegegevens, zoals een gebruikersnaam en wachtwoord.
402 Payment Required (Betaling vereist):
De statuscode 402 Payment Required is gereserveerd voor toekomstig gebruik en wordt momenteel zelden gebruikt. Het suggereert dat betaling vereist is voordat de client toegang kan krijgen tot de gevraagde bron.
403 Forbidden (Verboden):
De statuscode 403 Forbidden wordt geretourneerd wanneer de server begrijpt wat de client heeft verzocht, maar weigert het verzoek uit te voeren vanwege autorisatie problemen of beperkingen op de toegang tot de gevraagde bron.
404 Not Found (Niet gevonden):
De statuscode 404 Not Found is een van de meest bekende en vaak voorkomende foutcodes. Het wordt geretourneerd wanneer de server de gevraagde bron niet kan vinden of herkennen. Dit kan bijvoorbeeld gebeuren wanneer een URL verkeerd is getypt of wanneer een pagina is verwijderd of verplaatst zonder omleiding.
Figuur 3. Een screenshot van een 404-error op de site van Wikipedia
405 Method Not Allowed (Methode niet toegestaan):
De statuscode 405 Method Not Allowed wordt geretourneerd wanneer de server de aangevraagde verzoek-methode niet toestaat voor de gevraagde bron. Bijvoorbeeld, een poging om een POST-verzoek uit te voeren op een bron die alleen lezen toestaat.
406 Not Acceptable (Niet acceptabel):
De statuscode 406 Not Acceptable wordt geretourneerd wanneer de server het verzoek niet kan accepteren op basis van de acceptatiecriteria die zijn gespecificeerd in de “Accept” koptekst van het verzoek.
407 Proxy Authentication Required (Proxy-authenticatie vereist):
De statuscode 407 Proxy Authentication Required wordt geretourneerd wanneer de client zich moet authenticeren bij een proxyserver voordat deze toegang krijgt tot de gevraagde bron.
408 Request Timeout (Time-out aanvraag):
De statuscode 408 Request Timeout wordt geretourneerd wanneer de server het verzoek van de client niet binnen de toegewezen tijdsduur heeft ontvangen en verwerkt.
409 Conflict (Conflict):
De statuscode 409 Conflict wordt geretourneerd wanneer het verzoek van de client een conflict veroorzaakt met de huidige toestand van de server, zoals bij het proberen te wijzigen van gegevens die in strijd zijn met bestaande gegevens.
410 Gone (Verdwenen):
De statuscode 410 Gone wordt geretourneerd wanneer de gevraagde bron permanent is verwijderd en niet langer beschikbaar is op de server.
411 Length Required (Lengte vereist):
De statuscode 411 Length Required wordt geretourneerd wanneer de server een verzoek ontvangt zonder de “Content-Length” koptekst, die nodig is voor het verwerken van het verzoek.
412 Precondition Failed (Voorwaarde niet voldaan):
De statuscode 412 Precondition Failed wordt geretourneerd wanneer een of meer voorwaarden die zijn gespecificeerd in het verzoek van de client niet zijn vervuld voordat het verzoek kon worden uitgevoerd.
413 Payload Too Large (Lading te groot):
De statuscode 413 Payload Too Large wordt geretourneerd wanneer het verzoek van de client een payload bevat die groter is dan wat de server kan verwerken of accepteren.
414 URI Too Long (URI te lang):
De statuscode 414 URI Too Long wordt geretourneerd wanneer de URI (Uniform Resource Identifier) van het verzoek van de client langer is dan de server kan verwerken.
415 Unsupported Media Type (Niet-ondersteund mediatype):
De statuscode 415 Unsupported Media Type wordt geretourneerd wanneer het mediatype van de payload in het verzoek van de client niet wordt ondersteund door de server of de gevraagde bron.
416 Range Not Satisfiable (Bereik niet bevredigend):
De statuscode 416 Range Not Satisfiable wordt geretourneerd wanneer het bereik dat is gespecificeerd in de “Range” koptekst van het verzoek van de client niet bevredigbaar is door de server.
417 Expectation Failed (Verwachting mislukt):
De statuscode 417 Expectation Failed wordt geretourneerd wanneer de server niet aan de verwachtingen kan voldoen die zijn gespecificeerd in de “Expect” koptekst van het verzoek van de client.
421 Misdirected Request (Verkeerd gerichte aanvraag):
De statuscode 421 Misdirected Request wordt geretourneerd wanneer het verzoek van de client naar een server is gestuurd die niet in staat is om het verzoek te verwerken, zoals bij een fout in de netwerkconfiguratie.
422 Unprocessable Entity (Niet-verwerkbare entiteit):
De statuscode 422 Unprocessable Entity wordt geretourneerd wanneer de server het verzoek van de client begrijpt, maar niet kan verwerken vanwege ongeldige inhoud of parameters.
423 Locked (Vergrendeld):
De statuscode 423 Locked wordt geretourneerd wanneer de gevraagde bron momenteel vergrendeld is en niet kan worden gewijzigd of verwijderd.
424 Failed Dependency (Mislukte afhankelijkheid):
De statuscode 424 Failed Dependency wordt geretourneerd wanneer het verzoek van de client niet kan worden uitgevoerd vanwege een mislukte afhankelijkheid, zoals bij een verzoek dat afhankelijk is van de resultaten van een ander verzoek.
425 Too Early (Te vroeg):
De statuscode 425 Too Early wordt geretourneerd wanneer de server weigert het verzoek van de client te verwerken omdat het nog te vroeg is volgens het beleid van de server.
426 Upgrade Required (Upgrade vereist):
De statuscode 426 Upgrade Required wordt geretourneerd wanneer de client moet upgraden naar een nieuw protocol voordat het verzoek kan worden verwerkt.
428 Precondition Required (Voorwaarde vereist):
De statuscode 428 Precondition Required wordt geretourneerd wanneer de server vereist dat de client een of meer voorwaarden opgeeft in het verzoek.
429 Too Many Requests (Te veel verzoeken):
De statuscode 429 Too Many Requests wordt geretourneerd wanneer de server het verzoek van de client weigert vanwege een te groot aantal verzoeken binnen een bepaalde periode.
431 Request Header Fields Too Large (Koptekst-velden aanvraag te groot):
De statuscode 431 Request Header Fields Too Large wordt geretourneerd wanneer de server de koptekst van het verzoek van de client weigert vanwege een te grote omvang.
451 Unavailable For Legal Reasons (Niet beschikbaar om wettelijke redenen):
De statuscode 451 Unavailable For Legal Reasons wordt geretourneerd wanneer de gevraagde bron om juridische redenen niet beschikbaar is, zoals bij censuur of wettelijke beperkingen.
Deze client-fout HTTP-statuscodes (4xx) geven aan dat er een probleem is opgetreden aan de kant van de client en kunnen verschillende oorzaken hebben, zoals onjuiste URL’s, ontbrekende autorisatie of problemen met de verzoek-syntax. Het begrijpen van deze statuscodes is essentieel voor het diagnosticeren en oplossen van problemen met web verzoeken, en het handhaven van een goede web ervaring voor gebruikers.
e. De 5xx serverfout-status codes (van 500 t/m 511)
Serverfout status codes geven aan dat er een probleem is opgetreden aan de kant van de server bij het verwerken van het verzoek van de client.
500 Internal Server Error (Interne server fout):
De statuscode 500 Internal Server Error wordt geretourneerd wanneer er een onverwachte fout optreedt aan de kant van de server die de server verhindert het verzoek van de client te verwerken. Dit kan bijvoorbeeld veroorzaakt worden door een software bug, een configuratiefout of problemen met de serverinfrastructuur.
501 Not Implemented (Niet geïmplementeerd):
De statuscode 501 Not Implemented wordt geretourneerd wanneer de server het verzoek van de client niet kan uitvoeren omdat de functionaliteit niet is geïmplementeerd of ondersteund door de server.
502 Bad Gateway (Slechte gateway):
De statuscode 502 Bad Gateway wordt geretourneerd wanneer de server als gateway of proxy fungeert en een ongeldige respons ontvangt van de upstream-server waarnaar het verzoek is doorgestuurd.
503 Service Unavailable (Service niet beschikbaar):
De statuscode 503 Service Unavailable wordt geretourneerd wanneer de server tijdelijk niet beschikbaar is om het verzoek van de client te verwerken, bijvoorbeeld vanwege onderhoudswerkzaamheden, overbelasting of storingen.
504 Gateway Timeout (Gateway time-out):
De statuscode 504 Gateway Timeout wordt geretourneerd wanneer de server als gateway of proxy fungeert en geen respons ontvangt van de upstream-server binnen de toegestane tijdslimiet.
505 HTTP Version Not Supported (HTTP-versie niet ondersteund):
De statuscode 505 HTTP Version Not Supported wordt geretourneerd wanneer de server het gebruikte HTTP-protocol niet ondersteunt dat wordt gespecificeerd in het verzoek van de client.
506 Variant Also Negotiates (Variant ook onderhandelt):
De statuscode 506 Variant Also Negotiates wordt geretourneerd wanneer de server een onjuiste configuratie heeft voor inhoud varianten onderhandelingen, wat resulteert in een oneindige lus of een verkeerde respons.
507 Insufficient Storage (Onvoldoende opslagruimte):
De statuscode 507 Insufficient Storage wordt geretourneerd wanneer de server de gevraagde bron niet kan opslaan vanwege een gebrek aan opslagruimte op de server.
508 Loop Detected (Lus gedetecteerd):
De statuscode 508 Loop Detected wordt geretourneerd wanneer de server een oneindige lus heeft gedetecteerd tijdens de verwerking van het verzoek van de client.
510 Not Extended (Niet uitgebreid):
De statuscode 510 Not Extended wordt geretourneerd wanneer de server het verzoek van de client niet kan verwerken omdat de vereiste uitbreidingen niet zijn geïmplementeerd.
511 Network Authentication Required (Netwerk authenticatie vereist):
De statuscode 511 Network Authentication Required wordt geretourneerd wanneer de client zich moet authenticeren bij het netwerk voordat deze toegang krijgt tot de gevraagde bron.
Deze serverfout-HTTP-statuscodes (5xx) duiden op problemen aan de kant van de server en kunnen verschillende oorzaken hebben, zoals interne fouten, overbelasting van de server of problemen met de serverconfiguratie. Het is essentieel voor web beheerders en ontwikkelaars om deze status codes te begrijpen en te beheren om de betrouwbaarheid en beschikbaarheid van hun websites te waarborgen.
Conclusie
HTTP-status codes zijn van belang voor de communicatie van de resultaten van HTTP-verzoeken tussen clients (computers en andere devices waarop wordt geinternet) en servers. Door deze codes te begrijpen, kunnen zowel ontwikkelaars als gebruikers beter begrijpen wat er gebeurt tijdens het browsen op het web en eventuele problemen oplossen die zich kunnen voordoen.
Veelgestelde Vragen
Wat moet ik doen als ik een Not Found (of Niet gevonden)-fout tegenkom tijdens het browsen?
- Als je een 404-fout tegenkomt, betekent dit dat de gevraagde pagina niet kon worden gevonden. Probeer de URL te controleren op typ-fouten en navigeer indien mogelijk terug naar de homepage van de website.
Waarom krijg ik soms een 503-foutmelding bij het bezoeken van een website?
- Een 503-foutmelding geeft aan dat de server tijdelijk niet beschikbaar is om het verzoek te verwerken. Dit kan worden veroorzaakt door onderhoudswerkzaamheden, overbelasting van de server of andere technische problemen. Probeer het later opnieuw.
Kan ik HTTP-status codes gebruiken bij het ontwikkelen van mijn eigen website?
- Ja, als ontwikkelaar kun je HTTP-status codes gebruiken om de juiste reactie van de server te definiëren op verschillende soorten verzoeken. Dit helpt bij het bouwen van een robuuste en gebruiksvriendelijke website.