Wer eine HTTP-Verbindung zu einer Website bzw. einem Webserver aufbaut, der bekommt als Antwort (Response) einen sog. HTTP-Statuscode zurück, der Auskunft darüber gibt, ob die Anfrage (Request) erfolgreich gewesen war oder ob Fehler aufgetreten sind. Der bekannteste HTTP-Statuscode ist wohl der 404-Error, welcher aussagt, dass die angeforderte Ressource auf dem Server nicht gefunden wurde.
Wenn ihr eine Internetseite jedoch problemlos aufrufen könnt, so wird der Statuscode 200 OK
gesendet, der nichts anderes aussagt, als dass die Anfrage erfolgreich war. Es gibt auch noch in anderen Netzwerkprotokollen, wie beispielsweise im FTP-Protokoll, Statuscodes. Hier behandeln wir jedoch nur Statuscodes vom Hypertext Transfer Protocol.
Wie wird der HTTP-Statuscode gesendet?
Der HTTP-Statuscode wird bei jedem Response vom Server zum Client im Header des HTTP-Response platziert. Der HTTP-Header enthält wichtige Informationen über die verwendete Codierung und/oder den Inhaltstyp (zum Beispiel ob es sich um eine HTML-Seite, ein Bild oder eine Flash-Animation handelt). Der HTTP-Body enthält dann den eigentlichen Inhalt. In den meisten Fällen also die HTML- bzw. PHP-Seite oder ein Bild, welches der Nutzer angefordert hat.
HTTP-Statuscode mit PHP senden
Mit der serverseitigen Programmiersprache PHP und der Funktion header()
ist es möglich, einen beliebigen HTTP-Statuscode an einen Client zu senden. Dabei schreibt man in der Regel als erstes die verwendete HTTP-Version und danach den Statuscode und ggf. auch noch die Beschreibung dazu.
Im folgenden Codebeispiel seht ihr, wie man einen HTTP-Statuscode mit PHP sendet.
<?php header('HTTP/1.1 500 Internal Server Error');
Die HTTP-Statuscodes
Nachfolgend eine Liste einiger bekannter HTTP-Statuscodes. Man unterscheidet zwischen clientseitigen (4xx) und serverseitigen (5xx) Fehlern. Des Weiteren gibt es noch 1xx für eine Information, 2xx für eine erfolgreiche Operation und 3xx für Umleitungen bzw. Weiterleitungen (Redirect's). In der folgenden Tabelle sind nur die wichtigsten Statuscodes enthalten, die in der Regel häufiger vorkommen. Alle anderen wurden ausgelassen!
Statuscode | Beschreibung |
101 | Switching Protocols |
200 | OK |
202 | Accepted |
204 | No Content |
301 | Moved Permanently |
302 | Found |
303 | See Other |
305 | Use Proxy |
307 | Temporary Redirect |
400 | Bad Request |
401 | Authorization Required |
403 | Forbidden |
404 | Not Found |
408 | Request Timeout |
414 | Request-URL Too Long |
500 | Internal Server Error |
502 | Bad Gateway |
503 | Service Unavailable |
504 | Gateway Timeout |