500

Internal Server Error

Offiziell Unterstatus-Codes
Ein nicht genauer definierter interner Serverfehler

Allgemeine Erklärung des 500-Statuscodes

Der HTTP 500 Internal Server Error Statuscode tritt auf, wenn der Server ein Problem hat und nicht in der Lage ist, die Anfrage des Nutzers zu bearbeiten. Dies kann verschiedene Gründe haben, wie zum Beispiel technische Probleme, Überlastung des Servers oder Probleme mit der Software, die den Server betreibt.

Spezifikation von dem HTTP statuscode 500

Der Statuscode 500 Internal Server Error zeigt an, dass der Server auf eine unerwartete Bedingung gestoßen ist, die ihn daran hinderte, die Anfrage zu bearbeiten.

Quelle / Zitat von: Spezifiziert wird der 500 Internal Server Error HTTP Status Code durch Abschnitt 6.6.1 von RFC7231

Wie kann man mit PHP einen 500-Statuscode werfen?

Um auf einer Webseite den HTTP Status Code 500 zu werfen, kann die PHP Funktion http_response_code benutzt werden. Die Syntax sieht wie folgt aus: http_response_code(500) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Teste den 500 HTTP Status Code

Um die HTTP Status Code (in diesem Fall 500 Internal Server Error) und weitere Informationen clientseitig anzeigen zu können, muss die Entwicklungskonsole mit F12 geöffnet werden. Im Anschluss muss zu der Karteikarte "Netzwerk" navigiert werden. Jetzt kann die Seite geöffnet werden, im Netzwerktab sollte die Webseite (Beispiel index.php) zu sehen sein. Diese muss ausgewählt werden und im Anschluss der Bereich Herder gewählt werden. Hier sieht der Nutzer dann folgendes Ergebnis:

Statuscode 500 Internal Server Error
Überblick
URL: https://http-statuscode.com/errorCodeExample.php?code=500
Status: 500 Internal Server Error
Diese: Network
IP-Adresse: XX.XX.XX.XX
Statuscode 500 Internal Server Error

Wie löse ich das Problem mit dem 500 Statuscode?

Um den HTTP Fehler 500 Internal Server Error zu beheben, müssen wir als Erstes herausfinden, warum der HTTP 500 Internal Server Error Statuscode überhaupt geworfen wurde. Gründe können sein:

  1. Probleme mit der Serverkonfiguration oder -programmierung
  2. Fehler in der ".htaccess" Datei
  3. Fehlende oder beschädigte Dateien auf dem Server
  4. Überlastung des Servers oder unzureichende Ressourcen wie CPU, RAM oder Bandbreite
  5. Schwierigkeiten bei der Verbindung mit anderen Systemen oder Datenbanken
  6. Sicherheitsprobleme wie DDoS-Angriffe oder Malware-Infektionen
  7. Fehler in der Anwendung oder im Framework auf dem Server

Alle diese Sachen müssen geprüft werden, je nachdem welche Änderung als letztes durchgeführt wurde, sollte dies als erstes geprüft werden. Da die Ursachen für einen HTTP 500 Internal Server Error Statuscode so vielseitig sein können, lässt sich keine allgemeine Empfehlung hierbei aussprechen.

Wie erstellt man eine eigene Fehlerseite für den Statuscode 500

Eine eigene 500 Internal Server Error Fehlerseite zu erstellen ist sowohl mit dem Webserver "Apache" als auch mit dem Webserver "NGINX", relativ leicht.

Apache Webserver

Der Webserver "Apache" gilt zu den meist verbreitetsten Webservern im Internet. Um einen eigene 500 Internal Server Error Fehlerseite in"Apache" zu erstellen, muss in folgender Datei folgende Änderung durchgeführt werden.

File: .htaccess
ErrorDocument 500 /errors/500.html

NGINX Webserver

Ähnlich wie der Webserver "Apache" ist auch "NGINX" im Internet weit verbreitet. Um einen eigene 500 Internal Server Error Fehlerseite in "NGINX" zu erstellen, muss in folgender Datei folgende Änderung durchgeführt werden.

File: sites-enabled/default
error_page 500 /500.html;
location = /500.html {
    root /usr/share/nginx/html;
    internal;
}

Browser-Kompatibilität des 500 Statuscode

Chrome no data
Edge no data
Firefox no data
Opera no data
Safari no data
Chrome Android no data
Firefox for Android no data
Opera Android no data
Safari on iOS no data
Internet no data
WebView Android no data

Konstanten in Programmiersprachen

HttpStatusCode.InternalServerError
http.StatusInternalServerError
Response::HTTP_INTERNAL_SERVER_ERROR
httplib.INTERNAL_SERVER_ERROR
http.client.INTERNAL_SERVER_ERROR
http.HTTPStatus.INTERNAL_SERVER_ERROR
:internal_server_error

Unterstatuscodes des 500 Statuscode

Unterstatuscodes sind rein technisch, und sollten niemals dem Nutzer gesendet werden. Wenn beispielsweise der Statuscode 500.1 geworfen wird, kann dieser zwar geloggt werden, aber der Statuscode 500 wird dem User gesendet.:
500.0 Module or ISAPI error occurred
HTTP IIS, Inoffiziell
500.11 Application is shutting down on the web server
HTTP IIS, Inoffiziell
500.12 Application is busy restarting on the web server
HTTP IIS, Inoffiziell
500.13 Web server is too busy
HTTP IIS, Inoffiziell
500.15 Direct requests for Global.asax aren't allowed
HTTP IIS, Inoffiziell
500.19 Configuration data is invalid
HTTP IIS, Inoffiziell
500.21 Module not recognized
HTTP IIS, Inoffiziell
500.22 An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.
HTTP IIS, Inoffiziell
500.23 An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode
HTTP IIS, Inoffiziell
500.24 An ASP.NET impersonation configuration does not apply in Managed Pipeline mode
HTTP IIS, Inoffiziell
500.50 A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred
HTTP IIS, Inoffiziell
500.51 A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred
HTTP IIS, Inoffiziell
500.52 A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred
HTTP IIS, Inoffiziell
500.53 A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated
HTTP IIS, Inoffiziell
500.100 Internal ASP error
HTTP IIS, Inoffiziell
Autor: Tony Brüser
Autor: Tony Brüser

Tony Brüser ist ein begeisterter Webentwickler mit einer Vorliebe für HTTP Statuscodes.

LinkedInGitHub