HTTP – Status-Codes

19. November 2008

Wenn ein Webserver auf die Anfragen eines Browsers antwortet, gibt er ihm immer auch eine dreistellige Zahl mit, den sogenannten Status-Code. Anhand dieser Zahl verstehen die Browser, ob ihre Anfrage vernünftig beantwortet werden konnte, oder wo ein potentielles Problem liegt.

Die Status-Codes waren schon eine Idee der ersten Stunde des World Wide Webs. Im Laufe der Zeit kamen einige hinzu, bei anderen hat sich die Bedeutung etwas verschoben. Die HTTP-Status-Codes werden in der Internetspezifikation RFC 2616 genau beschrieben und umfasst die folgenden Werte:

  • 1xx – Zwischenstatus
    • 100 Continue – Server sagt Browser, dass er für die Antwort noch etwas Zeit braucht
    • 101 Switching Protocols – Experimentell, zur Verändern des Protokolls während einer Session. Beispiel: Upgrade vom HTTP- zu einem Streaming-Media-Protokoll
  • 2xx – Anfrage OK
    • 200 OK – Server konnte Anfrage erfüllen und liefert Resultate – “Chef, hier sind die Folien!”
    • 201 Created – Server bestätigt, dass eine frisch angefragte Resource erfolgreich erstellt wurde
    • 202 Accepted – Server hat Anfrage angenommen und macht vielleicht etwas – “Wir haben Ihre Mail dankend erhalten!”
    • 203 Non-Authoritative Information – Server konnte Anfrage erfüllen und liefert eventuell veraltete oder leicht veränderte Resultate – “ich hab hier noch einen alten Ausdruck mit intelligenten Randnotizen gefunden”
    • 204 No Content – Server konnte Anfrage erfüllen, hat aber im Moment keine Daten zu verschicken
    • 205 Reset Content – Anfrage erfolgreich, der Browser soll das alte Formular vergessen und die alten Formularinhalte löschen
    • 206 Partial Content - Wie 200 für den Fall, dass es eine Teilanfrage war. Das erlaubt zum Beispiel die Fortschrittsüberwachung bei langen Downloads
  • 3xx – Weiterleitungen
    • 300 Multiple Choices – Server hat mehrere Ergebnisse und fragt nach, welches davon er liefern soll (“Den Kaffee schwarz oder mit Milch oder Zucker oder beidem?”)
    • 301 Moved Permanently – Die angefragte Seite ist endgültig umgezogen und hat jetzt die folgende neue Adresse. Mit dem Apache-Modul mod_rewrite würden Webmaster für solche Umleitungen statt [R] dann [R=301] eintragen
    • 302 Found – Temporäre Umleitung. Die angefragte Seite ist für den Moment nur unter der folgenden Adresse zu erreichen. Tipp: Im beliebten Apache-Model “mod_rewrite” ist die 302-Umleitung die Standardeinstellung für Weiterleitungen. Wer dort für “saubere URLs” Umleitungen einstellt, sollte besser mit der 301 arbeiten
    • 303 See Other – Temporäre Umleitung wie 302. Der Browser soll hier aber explizit die umgeleitete Seite mit einer sogenannten GET-Anfrage abholen. Wird für Umleitungen von sogenannten POST-Anfragen benutzt
    • 304 Not Modified – Die Antwort, wenn der Browser die Seite schon kennt und sie sich seit der letzten Anfrage nicht geändert hat
    • 305 Use Proxy – Der Server kann nicht direkt antworten, aber gibt Bescheid, wer gefragt werden muss (“Da müssen Sie bitte direkt in der Einkaufsabteilung anfragen”)
    • 306 Unused – Der Code 306 kommt heute nicht mehr vor
    • 307 Temporary Redirect – Temporäre Umleitung wie 302. Der Browser darf hier aber seine Anfrageart für die neue Adresse nicht ändern
  • 4xx – Fehler auf der Browserseite
    • 400 Bad Request – der Browser hat Quatsch geschickt und der Server meckert (“Häh?”)
    • 401 Unauthorized – die angefragte Seite ist passwortgeschützt und der User ist noch nicht eingeloggt
    • 402 Payment Required – der Server gibt Bescheid, dass die Seite kostenpflichtig ist. Der Statuscode wird heute noch nicht genutzt
    • 403 Forbidden – die Seite ist zwar vorhanden, darf aber nicht ausgeliefert werden
    • 404 Not Found – die Seite ist nicht vorhanden. Hinweis: der Fehler ist für die Benutzer sehr unverständlich. Schließlich haben sie in der Regel auf einen Link geklickt, und dann kommt so ein “Hau ab!”. Damit ihre potentiellen User keine solche negativen Erfahrungen mit Ihrer Seite machen können Sie eine ansprechende Fehlerseite erstellen. Sie sollte gute Tipps enthalten, wieso die Seite nicht gefunden wurde, was Ihre Webseite eigentlich anbietet und wo die User vielleicht doch noch etwas finden könnten
    • 405 Method Not Allowed – die Seite ist zwar vorhanden, muss aber mit einer der folgenden Methoden abgerufen werden
    • 406 Not Acceptable – der Server will pedantischerweise nicht antworten, weil die Antwort nicht genau zur Anfrage passt – “Nein, ich kann ihnen kein Wasser geben. Sie haben nach Apollinaris gefragt, wir haben aber nur Gerolsteiner!”
    • 407 Proxy Authentication Required – der User muss sich erst bei einem Proxy einloggen – “Ich kann Ihnen das Formular nur geben, wenn Sie dafür eine Genehmigung vom Chef bringen!”
    • 408 Request Timeout – der Browser hat verschlafen, eine Anfrage zu schicken, und der Server hat nun erstmal genug
    • 409 Conflict – der User muss etwas korrigieren und kann es dann neu versuchen
    • 410 Gone – die Seite ist endgültig nicht mehr da und es gibt keine Nachsendeadresse
    • 411 Length Required – der Server will genau wissen, wie lang die Anfrage ist
    • 412 Precondition Failed – die Anfrage enthält eine Unstimmigkeit
    • 413 Request Entity Too Large – Die Anfrage war zu umfangreich für den Server
    • 414 Request-URI Too Long – Die angefragte Adresse ist zu lang für den Server
    • 415 Unsupported Media Type – Der angefragte Medientyp passt nicht zur angefragten Seite
    • 416 Requested Range Not Satisfiable
    • 417 Expectation Failed
  • 5xx – Fehler auf der Serverseite
    • 500 Internal Server Error – Der Server hat Probleme und kann nicht antworten. Solche Fehler treten zum Beispiel nach einem Datenbankcrash gerne auf: der Webserver könnte zwar etwas ausliefern, aber das Content-Management-System kann mangels Datenbank keine Seite produzieren
    • 501 Not Implemented – Der Server hat eine angefragte Funktion nicht gelernt und kann deshalb nicht antworten
    • 502 Bad Gateway – Der Server arbeitet als Gateway oder Proxy und hat eine ungültige Antwort von einem anderen System in der Kette erhalten
    • 503 Service Unavailable – Der Server wird gerade gewartet oder kann wegen hoher Last nicht antworten
    • 504 Gateway Timeout – Der Server arbeitet als Gateway oder Proxy und hat von einem anderen System in der Kette nicht rechtzeitig Antwort bekommen
    • 505 HTTP Version Not Support – der Server unterstützt das angefragte HTTP-Protokoll nicht und erklärt nun, warum nicht

Weblinks

  • RFC 2616 – das ist der Internet-Standard für die HTTP-Status-Codes
  • RFC 2774 – der Standard für den HTTP-Statuscode 510
  • RFC 2295 – der Internet-Standard für den HTTP-Statuscode 506
  • RFC 4918 – der Internet-Standard für den HTTP-Statuscode 507
Speichern
  • MisterWong.DE
  • Webnews.de
  • Digg
  • del.icio.us
  • Facebook
  • Google

Schlagworte: , , , ,

Kommentieren


Über WebmasterCoffee - Archiv - Impressum