asphelper.de - Referenz - HTTP-Statuscodes

Link: Wichtiger Hinweis in eigener Sache!


HTTP steht für HyperText Transport Protocol und ist eines der wichtigsten Protokolle im Internet. Teil von diesem Protokoll sind Statuscodes, die bei einem HTTP-Head mit übergeben wird. Diese Statuscodes beschreiben, wie es mit der aktuellen Anforderung so aussieht. Gibt man eine Adresse im Browser ein, muss der entsprechende Webserver darauf reagieren.

Dabei sendet der Webserver im Falle einer HTML-Seite, nicht nur den reinen HTML-Code, sondern noch weitere Daten, z.B. den HTTP-Head. Darin sind Informationen über den aktuellen Status und weiteres u.a. für den Browser. Aktuell ist HTTP 1.1, falls Sie sich für näheres interessieren, unter http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-07.txt ist HTTP 1.1 beschrieben. Die Statuscodes sind in 5 Bereiche eingeteilt, von 100 bis 500. Zuerst eine grobe Übersicht über die jeweiligen Bereiche dann eine detaillierte Beschreibung aller Statuscodes.


1xx Informell (Informational)
Diese Statuscodes sind hauptsächlich experimentell. Die Statuscodes sind dabei nicht endgültig, das bedeutet daß diesem Statuscode noch weitere Statuscodes bzw. Anweisungen folgen.

2xx Erfolgreiche Übertragung (Successful)
Übertragung wurde erfolgreich beendet.

3xx Weiterleitung (Redirection)
Der Client muss eine weitere Anweisung ausführen, z.B. eine andere Seite/Datei aufrufen.

4xx Client Fehler (Client Error)
Ein Fehler ist aufgetreten, vermutlich vom Client, z.B. eine nicht vorhanden Seite angefordert.

5xx Server Fehler (Server Error)
Vermutlich ist ein Fehler auf dem Server aufgetreten.


Auflistung mit einer Beschreibung
Statuscode Name Beschreibung
100Continue (Fortfahren)Daten wurden vom Client erfolgreich an den Server gesendet und soll damit fortfahren. Kann z.B. dann verwendet werden, wenn zwar Daten schon erfolgreich empfangen wurden und noch weitere Daten benötigt werden. Der Server sendet aber einen weiteren Statuscode.
101Switching Protocols (Protokolle werden gewechselt)Protokoll soll gewechselt werden, wird allerdings noch nicht verwendet.
200OKDie Anfrage vom Client wurde vom Server erfolgreich abgearbeitet. Das sollte der Normalfall sein.
201Created (Erstellt)Vom Client wurde eine neue Datei (einen neuen URL) angefordert, das Dokument dazu wurde vom Server erfolgreich erstellt.
202Accepted (Angenommen)Die Anfrage wurde vom Server erfolgreich angenommen kann aber noch nicht (komplett) verarbeitet werden.
203Non-authoritative information (Nicht autorisierte Information)Der Client erhält vom Server Daten, die nicht direkt von jedem Server stammt, an welche die Anfrage des Client gerichtet war. Das können z.B. Third-Party-Tools oder Proxy-Server sein.
204No Content (Kein Inhalt)Daten des Client wurde vom Server erfolgreich angenommen, jedoch sendet der Server keine Daten zurück.
205Reset Content (Inhalt zurückgesetzt)Der Client soll das Dokument erneut aufbauen.
206Partial Content (Teil des angeforderten Inhaltes)Die angeforderten Daten werden nicht auf einmal sondern in Stücken versandt.
300Multiple Choices (Daten sind gespiegelt)Die gewünschten Daten sind mehrfach vorhanden, z.B. bei mehrsprachigen Seiten. Der Client kann dann dem Nutzer eine Auswahlmöglickeit anzeigen, die unterschiedlichen URLs werden dabei im HTTP-Header übergeben.
301Moved Permanently (dauerhaft verschoben)Die Ressource ist nicht mehr unter der vom Client angeforderten Adresse vorhanden und ist dauerhaft an einer anderen Stelle, der Client (z.B. Browser) kann dann bei der nächsten Anforderung direkt die neue Adresse aufrufen.
302Moved Temporarily (vorübergehend verschoben)Die Ressource ist nicht mehr unter der vom Client angeforderten Adresse vorhanden und ist vorübergehen verschoben. Dieser Statuscode wird z.B. dann gesendet, wenn man in ASP-Skripts die Anweisung Response.Redirect("Seite.asp") einsetzt. Der Client (Browser) ruft dann die neue Seite auf, normalerweise ohne weitere Nachfrage des Benutzers. Der Vorteil bei der Anwendung liegt eher im Programmatischen. Ein Beispiel dafür ist eine Kontaktseite. Ein Besucher sendet Daten von der Kontaktseite und ruft dann eine weitere Seite auf. Dann klickt dieser in seinem Browser auf den Zurück-Button. Nun kann es vorkommen, daß die Daten aus der Kontaktseite erneut versendet werden, sehr oft unerwünscht. Mit Response.Redirect bzw. HTTP-Statuscode 302 wird das vermieden. Der Browser ruft dann beim Klick auf den Zurück-Button nicht mehr jene Seite mit den ausgefülltem Formular auf, sondern die Adresse aus Response.Redirect.
303See other (Siehe anderen URL)Es wurde eine Ressource angefordert, die an einer anderen Stelle ist.
304Not modified (nicht geändert)Wenn der Client per "If-Modified-Since" nachfragt, ob eine Datei seit ... geändert wurde, und dies nicht der Fall ist, wird der HTTP-Status 304 zurückgegeben.
305Use Proxy (Proxy verwenden)Der Client soll die angeforderte Ressource von einem angegeben Proxy aufrufen und nicht vom Server.
307Temporary Redirect (vorübergehend weitergeleitet)Es wurde eine Ressource angefordert, die vorübergehend an einer anderen Stelle ist, jedoch soll der Browser im Unterschied zu Statuscode 302 beim nächsten Aufruf wieder die ursprüngliche Adresse verwenden.
400Bad Request (Ungültige Anforderung)Die Anfrage enthält eine Syntaxfehler wie z.B. fehlerhafte oder nicht unterstützte Zeichen.
401Access denied (Zugriff verweigert)Zugriff auf die gewünschte Ressource wurde verweigert, um Zugriff zu erhalten kann ein Login erforderlich sein.
402Payment Required (Bezahlung erforderlich)Dieser Statuscode ist für zukünftige Aufgaben reserviert, Zugriff wurde nicht gewährt, Zahlung für den Zugang erforderlich.
403Forbidden (Unzulässig, Verboten)Die Anforderung vom Client wurde vom Server abgelehnt, entweder aus nicht näher bekannten Gründen oder weil ein Login erforderlich ist.
404Not Found (Nicht gefunden)Der Client hat eine Ressource angefordert, die der Server nicht gefunden hat.
405Method Not Allowed (Methode nicht erlaubt)Es wurde eine Methode verwendet, die der Server nicht akzeptiert. Dies kann dann vorkommen, wenn nur get oder post unterstützt wird und der Client eine andere Methode (z.B. get statt post) verwendet hat.
406Not Acceptable (Nicht Akzeptabel)Die Anforderung vom Client ist in diesem Format nicht aktzeptabel, Übertragung daher nicht erfolgreich.
407Proxy Authentication Required (Proxy Authentifzizierung erforderlich)Dieser Statuscode ist ähnlich wie 401 (Access denied), die Anforderung muss zuerst von einem Proxy autorisiert werden.
408Request Timeout (Zeitüberschreitung der Anforderung)Vom Client wurde eine Anforderung innerhalb eines bestimmten Zeitraums erwartet was jedoch nicht geschah. Die Anforderung soll zu einem späteren Zeitpunkt ohne Modifikationen ohne Änderungen erfolgen. Dieser Statuscode wird derzeit nicht oder nur sehr wenig eingesetzt und ist für zukünftige Entwicklungen vorgesehen.
409Conflict (Konflikt)Der Server kann auf die Anforderung nicht antworten, da ein Konflikt aufgetreten ist, z.B. eine gewünschte Ressource wird durch einen anderen Teilnehmer exklusiv verwendet.
410Gone (Fort)Es wurde eine Ressouce angefordert, die nicht mehr auf dem Server ist, dem Server ist jedoch die neue Adresse nicht bekannt.
411Length Required (Länge benötigt)Die Anforderung kann so nicht ausgeführt werden, da im Header die Content-length fehlt oder nicht akzeptiert wird.
412Precondition Failed (Vorbedingungen fehlgeschlagen)Die if-Anforderungen im Header konnten überhaupt nicht oder nicht erfolgreich ausgeführt werden.
413Request Entity Too Large (Zuviele Zeichen in der Anforderungseinheit)Der Client hat eine Anforderung mit zuvielen Zeichen gestellt, diese wurde vom Server abgelehnt. Tritt z.B. bei einem Datei-Upload auf.
414Request-URI Too Long (Request-URI zu lang)Die URI ist zu lang und wird daher vom Server nicht verarbeitet. Dies tritt oft bei Formularen auf, in denen zuviel Text per get oder post übertragen wurde. Falls die Übertragung per get erfolgt, versuchen Sie eine Übertragung per post.
415Unsupported Media Type (Nicht unterstützter Medientyp)Die Anforderung hat Zeichensätze in einem nicht unterstützten Medientyp.
416Requested Range Not Satisfiable (Angeforderter Bereich kann nicht erfüllt werden)Die Angaben im Range request-header Feld sind nicht korrekt.
417Execution failed (Ausführung fehlgeschlagen)Im Expect request-header Feld wurde ein Wunsch gestellt, die vom Server nicht ausgeführt werden kann.
500Internal Server Error (Interner Serverfehler)Die Anforderung konnten nicht ausgeführt werden, weil auf dem Server ein Fehler aufgetreten ist. Die Fehlermöglichkeiten können sowohl Hardwarebedingt wie auch aufgrund der Software bzw. des Programms auftreten. Zumeist wird dieser Fehler wegen falscher Programmierung einer Seite erzeugt, z.B. Syntaxfehler in einer ASP-Seite.
500.100Internal ASP error (Interner ASP-Fehler)Dieser Fehler tritt nur bei ASP und nur mit dem IIS ab Version 5 auf. Ist ein Fehler in einem ASP-Skritp aufgetreten, wird dieser Fehler erzeugt, dazu wird die Seite 500-100.asp vom Server aufgerufen. Ob die Seite 500-100.asp dann angezeigt wird, hängt von den Browser-Einstellungen ab. Mehr Infos hierzu unter Tipp 49: Fehlerbehandlung per 500-100.asp und ASPFehlercodes - FAQ. In der im Browser angezeigten 500-100.asp befindet sich auch eine Fehlerbeschreibung, oftmals mit einem Fehlercode, mit der Sammlung von ASPFehlercodes steht Ihnen ein umfassendes Nachschlagewerk zur Verfügung, das Ihnen bei vielen aufgetretenen Fehlern weiterhilft.
501Not Implemented (Nicht implementiert)Der Server unterstützt nicht die Anforderung vom Client weil eine Funktionalität, eine Voraussetzung dafür nicht vorhanden ist.
502Bad Gateway (Gatewayfehler)Der Server, welcher formal als Gateway oder Proxy fungierte, von einem anderen Server eine ungültige/fehlerhafte Antwort erhalten.
503Service unavailable (Dienst nicht verfügbar)Der Server kann die Anforderung nicht ausführen, da dieser derzeit überlastet oder nicht verfügbar ist. Die Meldung kann auch eine Zeitangabe enthalten, ab wann der Server wieder erreichbar ist.
504Gateway Timeout (Zeitüberschreitung vom Gateway)Der Server, der als Gateway oder Proxy fungiert, hat in einem vorgegebenem Zeitraum keine Antwort vom Server erhalten, an welchem die Anforderung weitergeleitet wurde.
505HTTP Version Not Supported (HTTP-Version nicht unterstützt)Die im Header angegebene HTTP-Version wird vom Server nicht unterstützt, daher kann die Anforderung nicht ausgeführt werden.



Weitere Informationsquellen zu diesem Thema:
http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-07.txt
http://www.w3.org/Protocols - Überblick einiger Protokolle u.A. HTTP
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html - Definitionen für Statuscodes



top top
© Copyright By Klaus Keller, 2001-2008 - Alle Rechte vorbehalten.