400

Bad Request

Offiziell Unterstatus-Codes
Die Anfrage ist ungültig

Spezifikation von dem HTTP statuscode 400

Der Statuscode 400 Bad Request zeigt an, dass der Server die Anfrage nicht bearbeiten kann oder will, weil ein Client-Fehler vorliegt (z. B. fehlerhafte Anfragesyntax, ungültiges Framing der Anfragemeldung oder irreführendes Anfrage-Routing).

Quelle / Zitat von: Spezifiziert wird der 400 Bad Request HTTP Status Code durch Abschnitt 6.5.1 von RFC7231

Wie kann man mit PHP einen 400-Statuscode werfen?

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

Teste den 400 HTTP Status Code

Um die HTTP Status Code (in diesem Fall 400 Bad Request) 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 400 Bad Request
Überblick
URL: https://http-statuscode.com/errorCodeExample.php?code=400
Status: 400 Bad Request
Diese: Network
IP-Adresse: XX.XX.XX.XX
Statuscode 400 Bad Request

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

Eine eigene 400 Bad Request 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 400 Bad Request Fehlerseite in"Apache" zu erstellen, muss in folgender Datei folgende Änderung durchgeführt werden.

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

NGINX Webserver

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

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

Browser-Kompatibilität des 400 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.BadRequest
:not_modified
http.StatusBadRequest
response::HTTP_BAD_REQUEST
httplib.BAD_REQUEST
http.client.BAD_REQUEST
http.HTTPStatus.BAD_REQUEST
:bad_request

Unterstatuscodes des 400 Statuscode

Unterstatuscodes sind rein technisch, und sollten niemals dem Nutzer gesendet werden. Wenn beispielsweise der Statuscode 400.1 geworfen wird, kann dieser zwar geloggt werden, aber der Statuscode 400 wird dem User gesendet.:
400.1 Invalid Destination Header
HTTP IIS, Inoffiziell
400.2 Invalid Depth Header
HTTP IIS, Inoffiziell
400.3 Invalid If Header
HTTP ISS, Inoffiziell
400.4 Invalid Overwrite Header
HTTP ISS, Inoffiziell
400.5 Invalid Translate Header
HTTP ISS, Inoffiziell
400.6 Invalid Request Body
HTTP ISS, Inoffiziell
400.7 Invalid Content Length
400, Inoffiziell
400.8 Invalid Timeout
HTTP ISS, Inoffiziell
400.9 Invalid Lock Token
HTTP IIS, Inoffiziell
400.10 Invalid X-Forwarded-For (XFF) header
HTTP ISS, Inoffiziell
400.11 Invalid WebSocket request
HTTP IIS, Inoffiziell
400.601 Bad client request (ARR)
HTTP ISS, Inoffiziell
400.602 Invalid time format (ARR)
HTTP IIS, Inoffiziell
400.603 Parse range error (ARR)
HTTP IIS, Inoffiziell
400.604 Client gone (ARR)
HTTP IIS, Inoffiziell
400.605 Maximum number of forwards (ARR)
HTTP IIS, Inoffiziell
400.606 Asynchronous competition error (ARR)
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