422
Unprocessable Content
Allgemeine Erklärung des 422-Statuscodes
Der HTTP-Statuscode 422 Unprocessable Content wird normalerweise zurückgegeben, wenn der Server die Anfrage des Clients erhalten hat, sie jedoch aufgrund eines semantischen Fehlers nicht verarbeiten konnte.
Dies bedeutet im Wesentlichen, dass die Anfrage des Clients vom Server nicht verstanden oder akzeptiert wurde, weil sie möglicherweise unvollständig oder fehlerhaft war. Ein häufiges Beispiel hierfür ist, wenn der Client versucht, eine Formularanforderung an den Server zu senden, aber das Formularfeld nicht korrekt ausgefüllt wurde.
Der Server wird normalerweise auch eine Nachricht im Body der Antwort zurücksenden, die weitere Details darüber enthält, warum die Anfrage unverarbeitbar ist. Es liegt dann am Client, diese Informationen zu lesen und zu korrigieren, um eine erfolgreiche Anfrage beim Server zu stellen.
Spezifikation von dem HTTP statuscode 422
Der Statuscode 422 Unprocessable Content bedeutet, dass der Server den Inhaltstyp der Anforderungseinheit versteht (daher ist ein Statuscode 415 (Unsupported Media Type) unangebracht) und die Syntax der Anforderungseinheit korrekt ist (daher ist ein Statuscode 400 (Bad Request) unangebracht), aber die enthaltenen Anweisungen nicht verarbeiten konnte. Diese Fehlerbedingung kann beispielsweise auftreten, wenn ein XML-Anfragekörper wohlgeformte (d. h. syntaktisch korrekte), aber semantisch fehlerhafte XML-Anweisungen enthält.
Quelle / Zitat von: Spezifiziert wird der 422 Unprocessable Content HTTP Status Code durch Abschnitt 11.2 von RFC4918
HTTP-Protokoll
Wie kann man mit PHP einen 422-Statuscode werfen?
Um auf einer Webseite den HTTP Status Code 422 zu werfen, kann die PHP Funktion http_response_code benutzt werden. Die Syntax sieht wie folgt aus: http_response_code(422) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Teste den 422 HTTP Status Code
Um die HTTP Status Code (in diesem Fall 422 Unprocessable Content) 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:
URL: https://http-statuscode.com/errorCodeExample.php?code=422
Status: 422 Unprocessable Content
Diese: Network
IP-Adresse: XX.XX.XX.XX
Wie löse ich das Problem mit dem 422 Statuscode?
Der HTTP Statuscode 422 Unprocessable Content kann mehrere Gründe haben. Wie in der allgemeinen Erklärung bereits beschrieben, wird der HTTP Statuscode 422 Unprocessable Content geworfen, wenn semantischen Fehler vorhanden sind.
HTTP Statuscode 422 Unprocessable Content wird in WordPress geworfen, wie behebe ich den Fehler?
Entweder ist ein kürzlich installiertes Plugin fehlerhaft, selbst angepasster Code semantisch falsch, oder es handelt sich um eine defekte Datenbank.
HTTP 422 Unprocessable Content wird wegen einer defekten Datenbank geworfen, das ist die Lösung
Um das Problem mit der Datenbank zu beheben, können WordPress-Plugins wie "WP-DBManager" verwendet werden. Wenn ein Zugriff selbst auf WordPress nicht mehr möglich ist, muss direkt auf die Datenbank zugegriffen werden. Hierfür werden bei Hostern meist Tools zur Verfügung gestellt. Das bekannteste Tool ist PhpMyAdmin. Nach dem Login muss die Datenbank ausgewählt werden und im Anschluss alle Tabellen über die Checkbox angewählt werden. Im Anschluss kann unten in der Selectbox "Rapair table" gewählt werden. Ausgeführt wird die Aktion mit dem klicken auf den Button "Go"
Nun sollte das Problem nicht mehr auftreten.
HTTP 422 Unprocessable Content wird wegen eines Fehlers im Code geworfen
Wenn ein semantischer Fehler im Code vorliegt, sollte die letzte Änderung rückgängig gemacht werden, oder das zuletzt installierte WordPress-Plugin deaktiviert oder via FTP / SFTP entfernt werden.
Nun sollte das Problem nicht mehr auftreten.
Wie erstellt man eine eigene Fehlerseite für den Statuscode 422
Apache Webserver
Der Webserver "Apache" gilt zu den meist verbreitetsten Webservern im Internet. Um einen eigene 422 Unprocessable Content Fehlerseite in"Apache" zu erstellen, muss in folgender Datei folgende Änderung durchgeführt werden.
NGINX Webserver
Ähnlich wie der Webserver "Apache" ist auch "NGINX" im Internet weit verbreitet. Um einen eigene 422 Unprocessable Content Fehlerseite in "NGINX" zu erstellen, muss in folgender Datei folgende Änderung durchgeführt werden.
location = /422.html {
root /usr/share/nginx/html;
internal;
}
Browser-Kompatibilität des 422 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
http.StatusUnprocessableEntity
Response::HTTP_UNPROCESSABLE_ENTITY
http.HTTPStatus.UNPROCESSABLE_ENTITY
:unprocessable_entity