Terug naar blog

Problemen met veelvoorkomende HTTP-foutcodes oplossen

Problemen met veelvoorkomende HTTP-foutcodes oplossen

Elke webserver die een HTTP-verzoek ontvangt, wordt beantwoord met een HTTP-statuscode. Deze codes zijn korte notities van de server die de situatie beschrijven. Ze bevatten geen daadwerkelijke site-inhoud. In plaats daarvan is het een verslag van hoe de zaken zijn verlopen na ontvangst van het HTTP-verzoek. In veel situaties zijn deze codes belangrijk om verschillende server-/clientproblemen te diagnosticeren.

Deze codes zijn gehele getallen van drie cijfers, die elk verschillende statussen aangeven. Op basis van het eerste cijfer zijn HTTP-codes onderverdeeld in vijf categorieën:

  • Informatieve reacties: Waarde varieert van 100 tot 199. Het beschrijft dat het verzoek is ontvangen en wordt verwerkt.

  • Succesvolle reacties: Waarde varieert van 200 tot 299. Het geeft aan dat de actie met succes is ontvangen, begrepen en geaccepteerd.

  • Omleidingsberichten: Waarde varieert van 300 tot 399. Het betekent dat verdere acties nodig zijn om het verzoek te voltooien.

  • Clientfoutreacties: Waarde varieert van 400 tot 499. Ofwel bevat het verzoek onjuiste syntaxis, ofwel kan het niet worden ingewilligd.

  • Serverfoutreacties: Waarde varieert van 500 tot 599. Het betekent dat de server er niet in is geslaagd een geldig verzoek te verwerken.

In deze gids bespreken we enkele van de meest voorkomende HTTP-foutcodes die iedereen tegenkomt (4xx and 5xx), vanuit het perspectief van een systeembeheerder. Talrijke situaties kunnen ertoe leiden dat de webserver met een specifieke code reageert. Daarnaast bespreekt deze handleiding mogelijke oorzaken en oplossingen.

Client- vs. serverfouten

Foutcodes 400 tot 499 zijn het gevolg van de gebruikersclient (een webbrowser of een HTTP-client). Hoewel de fouten meestal clientgerelateerd zijn, is het nuttig om te weten welke code een gebruiker ervaart. Het kan helpen bepalen of een potentieel probleem aan de serverzijde kan worden aangepakt.

Serverfouten (HTTP-statuscode 500 tot 599) daarentegen treden op wanneer de server zich ervan bewust is dat er een fout is opgetreden of niet in staat is het verzoek te verwerken.

Algemene probleemoplossing

Ongeacht de fout zijn hier enkele algemene tips voor probleemoplossing die u eerst moet uitproberen wanneer u met een HTTP-foutcode te maken krijgt:

  • Wanneer u een webbrowser gebruikt om de server te testen, is het een goede gewoonte om de browser te vernieuwen nadat u een wijziging aan de server hebt aangebracht.

  • Het serverlogboek bevat gedetailleerde informatie over hoe de server de verzoeken afhandelt. Populaire webservers zoals Apache en Nginx produceren bijvoorbeeld bestanden access.log en error.log. Het controleren van deze logboeken kan nuttige informatie opleveren.

  • HTTP-foutcodes maken deel uit van een standaard. De programma's implementeren deze standaard op basis van hoe ze de verzoeken afhandelen. Dit betekent dat een specifieke statuscode wordt geretourneerd op basis van hoe de serversoftware de specifieke fout afhandelt.

Deze gids moet dienen als een nuttige richtlijn bij het achterhalen van de bron van het probleem.

Veelvoorkomende HTTP-fouten

  1. Veelvoorkomende clientfouten

error 400

De foutcode 400 geeft een Bad Request aan. Het beschrijft dat het naar de server verzonden HTTP-verzoek een ongeldige syntaxis bevat. Laten we eens kijken naar mogelijke bronnen van de onjuiste syntaxis:

  • De site-gerelateerde cookies zijn mogelijk beschadigd. Het wissen van de browsercookies en cache kan het probleem oplossen.

  • De webbrowser die het verzoek verzendt, kan defect zijn of fouten bevatten.

  • It kan een ongeldig verzoek zijn vanwege een fout bij het handmatig opstellen van HTTP-verzoeken, bijvoorbeeld door onjuist gebruik van curl.

error code 401

De foutcode 401 (Unauthorized) treedt op wanneer het verzoek toegang probeert te krijgen tot bronnen die niet of niet correct zijn geauthenticeerd. Om het probleem op te lossen, moet de gebruiker de benodigde inloggegevens opgeven om toegang te krijgen tot de beveiligde bron.

Een voorbeeld hiervan is wanneer de gebruiker toegang probeert te krijgen tot een bron die is beveiligd met HTTP-authenticatie. In een dergelijke situatie ontvangt de gebruiker een foutcode 401, tenzij een geldige gebruikersnaam en wachtwoord worden opgegeven.

error 403

De foutcode 403 (Forbidden) verwijst naar een situatie waarin het gebruikersverzoek geldig is, maar de server weigert het verzoek in te willigen. Dit kan te wijten zijn aan een gebrek aan toestemming om toegang te krijgen tot de opgevraagde bron. Er zijn een paar scenario's die tot dit probleem kunnen leiden:

  • Bestandsrechten: Als de server niet over voldoende rechten beschikt om toegang te krijgen tot het opgevraagde bestand, kan dit leiden tot een 403-fout. Mogelijke oplossingen zijn onder meer controleren of de server probeert toegang te krijgen tot het indexbestand van de webserver, het werkproces dat eigendom is van www-data gebruiker, en of het indexbestand zich op de juiste locatie bevindt (in het geval van Nginx is dat /usr/share/nginx/html/index.html).

  • .htaccess: Webservers gebruiken het .htaccess bestand om verschillende beveiligingsfuncties te implementeren, bijvoorbeeld het filteren van specifieke IP-adressen of -bereiken. Een mogelijke oplossing is controleren of het IP-adres van waaruit het HTTP-verzoek afkomstig is, niet is geblokkeerd.

  • Bestand bestaat niet: Als het verzoek toegang probeert te krijgen tot een locatie die geen standaard indexbestand heeft en directory-indexering niet is ingeschakeld, retourneert de server de 403-fout. In een dergelijke situatie bestaat een mogelijke oplossing uit het aanpassen van de serverconfiguratie om directory-indexering toe te staan.

error 404

De foutcode 404 (Niet gevonden) betekent dat de gebruiker wel verbinding kon maken met de webserver, maar de opgevraagde bron niet kon vinden. Deze fout kan in verschillende situaties optreden. Hier zijn enkele mogelijke stappen voor probleemoplossing:

  • Controleer op eventuele typefouten in de link die de gebruiker naar de serverbron heeft geleid.

  • De gebruiker kan de URL verkeerd hebben getypt. Controleer of dit het geval is en corrigeer dit indien nodig.

  • Controleer of het bestand op de server bestaat. Is het verplaatst of verwijderd van de server?

  • De server is mogelijk geconfigureerd met de verkeerde document root-locatie. Controleer dit en herstel het indien nodig.

  • Heeft het werkproces van de webserver dat eigendom is van de gebruiker toestemming om het opgevraagde bestand te doorlopen? Let op dat er zowel lees- als uitvoeringsrechten nodig zijn om toegang te krijgen tot een map.

  • Is de bron een symbolische koppeling? In dat geval moet de server zijn geconfigureerd om symbolische koppelingen te volgen.

  1. Veelvoorkomende serverfouten

error code 500

De foutcode 500 (Interne serverfout) treedt op wanneer de server het verzoek om onbekende redenen niet kan verwerken. In sommige situaties meldt de server fout 500 wanneer een specifiekere 5xx-foutcode geschikter zou zijn.

Een van de meest voorkomende oorzaken van fout 500 is een verkeerd geconfigureerde server, bijvoorbeeld een onjuist geformatteerd .htaccess bestand. Het kan ook optreden als er pakketten ontbreken, bijvoorbeeld wanneer u PHP-code probeert uit te voeren zonder dat PHP op het systeem is geïnstalleerd.

error code 502

De foutcode 502 (Slechte gateway) geeft aan dat de server een proxy of een gateway is en geen geldige reactie kan ontvangen van de backend-server (die verantwoordelijk is voor het daadwerkelijk uitvoeren van het verzoek). Als de server een reverse proxy is, bijvoorbeeld een load balancer, zijn er een paar verschillende dingen om te controleren:

  • De backend-servers zijn in orde.

  • De reverse proxy is correct geconfigureerd (met de juiste backend-specificaties).

  • De verbinding tussen de reverse proxy en de backend-server is in orde. Als de servers via verschillende poorten kunnen communiceren, moet de firewall de verbinding met die poorten toestaan.

  • Als de web-app is geconfigureerd om een socket te gebruiken, zorg er dan voor dat de socket op de juiste locatie bestaat met de juiste rechten.

error code 503

De foutcode 503 (Dienst niet beschikbaar) geeft aan dat de server overbelast is of momenteel in onderhoud is. Dit houdt in dat de server op een gegeven moment weer beschikbaar moet komen.

Als de server niet in onderhoud is, geeft dit aan dat de server niet over de benodigde hardwarebronnen (rekenkracht, geheugen, enz.) beschikt om de binnenkomende verzoeken te verwerken. In dat geval moet de server worden geconfigureerd om meer gebruikers toe te staan of meer bronnen toe te wijzen.

De foutcode 504 (Gateway-time-out) geeft aan dat de server een proxy- of gateway-server is en binnen het toegestane tijdsbestek geen reactie van de backend heeft ontvangen. Er zijn verschillende situaties die tot dit probleem kunnen leiden:

  • Een slechte netwerkverbinding tussen de servers.

  • De backend-server presteert te traag (vanwege prestatieproblemen).

  • De time-outlimiet van de gateway-/proxyserver is te krap.

Tot slot

In deze gids worden HTTP-foutcodes besproken, met name enkele van de meest voorkomende. Er wordt beschreven wat de codes betekenen en er worden suggesties gedaan voor mogelijke stappen voor probleemoplossing. Met deze kennis heb je nu een solide basis voor het oplossen van problemen met je webservers of applicaties.

Dit is slechts een beknopte lijst van de meest populaire HTTP-statuscodes. Voor een uitgebreide lijst van alle HTTP-statuscodes, bekijk de HTTP-statuscodes op Wikipedia. Je kunt ook onze handleiding bekijken over Nginx HTTP Proxying, Load Balancing, Buffering en Caching: een overzicht.

Veel plezier met computeren!

author

Pranay Kapgate

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.