Zurück zum Blog

Fehlerbehebung bei gängigen HTTP-Fehlercodes

Fehlerbehebung bei gängigen HTTP-Fehlercodes

Jeder Webserver, der eine HTTP-Anfrage empfängt, antwortet mit einem HTTP-Statuscode. Diese Codes sind kurze Notizen des Servers, die die Situation beschreiben. Sie enthalten keinen eigentlichen Website-Inhalt. Stattdessen handelt es sich um einen Bericht darüber, wie die Dinge nach dem Empfang der HTTP-Anfrage gelaufen sind. In vielen Situationen sind diese Codes wichtig, um verschiedene Server-/Client-Probleme zu diagnostizieren.

Diese Codes sind dreistellige Ganzzahlen, von denen jede verschiedene Status anzeigt. Basierend auf der ersten Ziffer werden HTTP-Codes in fünf Kategorien unterteilt:

  • Informative Antworten: Der Wert reicht von 100 bis 199. Er beschreibt, dass die Anfrage empfangen wurde und verarbeitet wird.

  • Erfolgreiche Antworten: Der Wert reicht von 200 bis 299. Er besagt, dass die Aktion erfolgreich empfangen, verstanden und akzeptiert wurde.

  • Umleitungsnachrichten: Der Wert reicht von 300 bis 399. Das bedeutet, dass weitere Aktionen erforderlich sind, um die Anfrage abzuschließen.

  • Client-Fehlermeldungen: Der Wert reicht von 400 bis 499. Entweder enthält die Anfrage eine fehlerhafte Syntax oder sie kann nicht erfüllt werden.

  • Server-Fehlermeldungen: Der Wert reicht von 500 bis 599. Das bedeutet, dass der Server eine gültige Anfrage nicht verarbeiten konnte.

In dieser Anleitung werden wir einige der häufigsten HTTP-Fehlercodes besprechen, auf die jeder stößt (4xx und 5xx), und zwar aus der Sicht eines Systemadministrators. Zahlreiche Situationen können dazu führen, dass der Webserver mit einem bestimmten Code antwortet. Darüber hinaus werden in diesem Tutorial mögliche Ursachen und Lösungen besprochen.

Client- vs. Server-Fehler

Die Fehlercodes 400 bis 499 resultieren aus dem Benutzer-Client (einem Webbrowser oder einem beliebigen HTTP-Client). Obwohl die Fehler meist clientseitig sind, ist es nützlich zu wissen, welchen Code ein Benutzer erfährt. Dies kann helfen festzustellen, ob ein potenzielles Problem auf der Serverseite behoben werden kann.

Serverfehler (HTTP-Statuscode 500 bis 599) hingegen treten auf, wenn der Server feststellt, dass ein Fehler aufgetreten ist, oder wenn er nicht in der Lage ist, die Anfrage zu verarbeiten.

Allgemeine Fehlerbehebung

Unabhängig vom Fehler sind hier einige allgemeine Tipps zur Fehlerbehebung, die Sie zuerst ausprobieren sollten, wenn Sie mit einem HTTP-Fehlercode konfrontiert werden:

  • Wenn Sie einen Webbrowser zum Testen des Servers verwenden, ist es ratsam, den Browser nach jeder Änderung am Server zu aktualisieren.

  • Das Server-Protokoll enthält detaillierte Informationen darüber, wie der Server die Anfragen verarbeitet. Beispielsweise erzeugen beliebte Webserver wie Apache und Nginx Dateien access.log und error.log. Das Überprüfen dieser Protokolle kann nützliche Informationen liefern.

  • HTTP-Fehlercodes sind Teil eines Standards. Die Programme implementieren diesen Standard basierend darauf, wie sie die Anfragen verarbeiten. Das bedeutet, dass ein bestimmter Statuscode ausgegeben wird, je nachdem, wie die Server-Software den jeweiligen Fehler behandelt.

Diese Anleitung soll als nützlicher Leitfaden dienen, um die Ursache des Problems zu finden.

Häufige HTTP-Fehler

  1. Häufige Client-Fehler

error 400

Der Fehlercode 400 weist auf eine fehlerhafte Anfrage (Bad Request) hin. Er beschreibt, dass die an den Server gesendete HTTP-Anfrage eine ungültige Syntax enthält. Werfen wir einen Blick auf potenzielle Quellen für die fehlerhafte Syntax:

  • Die auf die Website bezogenen Cookies könnten beschädigt sein. Das Löschen der Browser-Cookies und des Caches kann das Problem lösen.

  • Der Webbrowser, der die Anfrage sendet, ist möglicherweise fehlerhaft.

  • Es könnte sich um eine fehlerhafte Anfrage aufgrund eines Fehlers bei der manuellen Erstellung von HTTP-Anfragen handeln, beispielsweise durch die fehlerhafte Verwendung von curl.

error code 401

Der Fehlercode 401 (Unauthorized) tritt auf, wenn die Anfrage versucht, auf Ressourcen zuzugreifen, die nicht oder nicht korrekt authentifiziert wurden. Um das Problem zu lösen, muss der Benutzer die erforderlichen Anmeldedaten angeben, um auf die geschützte Ressource zuzugreifen.

Ein Beispiel hierfür wäre, wenn der Benutzer versucht, auf eine durch HTTP-Authentifizierung geschützte Ressource zuzugreifen. In einer solchen Situation erhält der Benutzer den Fehlercode 401, es sei denn, es werden ein gültiger Benutzername und ein gültiges Passwort angegeben.

error 403

Der Fehlercode 403 (Forbidden) bezieht sich auf eine Situation, in der die Benutzeranfrage zwar gültig ist, der Server sich jedoch weigert, die Anfrage zu bedienen. Dies kann an fehlenden Berechtigungen für den Zugriff auf die angeforderte Ressource liegen. Es gibt einige Szenarien, die zu diesem Problem führen können:

  • Dateiberechtigungen: Wenn der Server nicht über ausreichende Berechtigungen verfügt, um auf die angeforderte Datei zuzugreifen, kann dies zu einem 403-Fehler führen. Mögliche Lösungen bestehen darin, zu überprüfen, ob der Server versucht, auf die Indexdatei des Webservers zuzugreifen, den Worker-Prozess im Besitz des www-data-Benutzers, und dass sich die Indexdatei am richtigen Ort befindet (im Fall von Nginx ist dies /usr/share/nginx/html/index.html).

  • .htaccess: Webserver verwenden die .htaccess -Datei, um verschiedene Sicherheitsfunktionen zu implementieren, beispielsweise das Filtern bestimmter IP-Adressen oder -Bereiche. Eine mögliche Lösung besteht darin, zu überprüfen, ob die IP-Adresse, von der die HTTP-Anfrage ausgeht, nicht blockiert ist.

  • Datei existiert nicht: Wenn die Anfrage versucht, auf einen Ort zuzugreifen, der keine Standard-Indexdatei hat und die Verzeichnisauflistung nicht aktiviert ist, gibt der Server den Fehler 403 zurück. In einer solchen Situation besteht eine mögliche Lösung darin, die Serverkonfiguration so anzupassen, dass Verzeichnisauflistungen zulässig sind.

error 404

Der Fehlercode 404 (Not Found) bedeutet, dass der Benutzer erfolgreich eine Verbindung zum Webserver herstellen konnte, aber die angeforderte Ressource nicht finden konnte. Dieser Fehler kann in verschiedenen Situationen auftreten. Hier sind einige mögliche Schritte zur Fehlerbehebung:

  • Überprüfen Sie den Link, der den Benutzer zur Serverressource weitergeleitet hat, auf eventuelle Tippfehler.

  • Der Benutzer könnte die URL falsch eingegeben haben. Überprüfen Sie, ob dies der Fall ist, und korrigieren Sie sie gegebenenfalls.

  • Überprüfen Sie, ob die Datei auf dem Server existiert. Wurde sie verschoben oder vom Server gelöscht?

  • Der Server ist möglicherweise mit dem falschen Document-Root-Verzeichnis konfiguriert. Überprüfen Sie dies und beheben Sie es gegebenenfalls.

  • Hat der dem Benutzer gehörende Webserver-Worker-Prozess die Berechtigung, die angeforderte Datei zu durchlaufen? Beachten Sie, dass für den Zugriff auf ein Verzeichnis sowohl Lese- als auch Ausführungsberechtigungen erforderlich sind.

  • Handelt es sich bei der Ressource um einen symbolischen Link? In diesem Fall muss der Server so konfiguriert sein, dass er symbolischen Links folgt.

  1. Häufige Serverfehler

error code 500

Der Fehlercode 500 (Internal Server Error) tritt auf, wenn der Server die Anfrage aus unbekannten Gründen nicht verarbeiten kann. In einigen Situationen meldet der Server den Fehler 500, obwohl ein spezifischerer 5xx-Fehlercode angemessener wäre.

Eine der häufigsten Ursachen für den Fehler 500 ist ein falsch konfigurierter Server, beispielsweise eine fehlerhafte .htaccess -Datei. Er kann auch auftreten, wenn Pakete fehlen, beispielsweise beim Versuch, PHP-Code auszuführen, ohne dass PHP auf dem System installiert ist.

error code 502

Der Fehlercode 502 (Bad Gateway) besagt, dass der Server ein Proxy oder ein Gateway ist und keine gültige Antwort vom Backend-Server (der für die eigentliche Ausführung der Anfrage zuständig ist) erhalten kann. Wenn der Server ein Reverse-Proxy ist, beispielsweise ein Load Balancer, gibt es einige verschiedene Dinge zu überprüfen:

  • Die Backend-Server sind betriebsbereit.

  • Der Reverse-Proxy ist ordnungsgemäß konfiguriert (mit den korrekten Backend-Spezifikationen).

  • Die Verbindung zwischen dem Reverse-Proxy und dem Backend-Server ist intakt. Wenn die Server über verschiedene Ports kommunizieren können, muss die Firewall die Verbindung zu diesen Ports zulassen.

  • Wenn die Web-App für die Verwendung eines Sockets konfiguriert ist, stellen Sie sicher, dass der Socket am richtigen Ort mit den entsprechenden Berechtigungen existiert.

error code 503

Der Fehlercode 503 (Service Unavailable) beschreibt, dass der Server überlastet ist oder derzeit gewartet wird. Dies impliziert, dass der Server zu einem späteren Zeitpunkt wieder verfügbar sein sollte.

Wenn der Server nicht gewartet wird, deutet dies darauf hin, dass der Server nicht über die erforderlichen Hardwareressourcen (Rechenleistung, Arbeitsspeicher usw.) verfügt, um die eingehenden Anfragen zu verarbeiten. In einem solchen Fall sollte der Server so konfiguriert werden, dass er mehr Benutzer zulässt oder mehr Ressourcen zuweist.

Der Fehlercode 504 (Gateway Timeout) besagt, dass der Server ein Proxy- oder Gateway-Server ist und innerhalb des zulässigen Zeitfensters keine Antwort vom Backend erhalten hat. Es gibt verschiedene Situationen, die zu diesem Problem führen können:

  • Eine schlechte Netzwerkverbindung zwischen den Servern.

  • Der Backend-Server arbeitet zu langsam (aufgrund von Performance-Problemen).

  • Das Timeout-Limit des Gateway-/Proxy-Servers ist zu eng bemessen.

Fazit

Dieser Leitfaden behandelt HTTP-Fehlercodes, insbesondere einige der am häufigsten vorkommenden. Er beschreibt, was die Codes bedeuten, und gibt Vorschläge für mögliche Maßnahmen zur Fehlerbehebung. Mit diesem Wissen haben Sie nun eine solide Grundlage für die Behebung von Problemen mit Ihren Webservern oder Anwendungen.

Dies ist nur eine kurze Liste der beliebtesten HTTP-Statuscodes. Für eine vollständige Liste aller HTTP-Statuscodes, sehen Sie sich die HTTP-Statuscodes auf Wikipedia an. Sie können sich auch unser Tutorial über Nginx HTTP Proxying, Load Balancing, Buffering und Caching: Ein Überblick.

Viel Spaß beim Computing!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.