Facebook
Twitter
Google+
Kommentare
13

Http Status Codes

Ich habe mir lange überlegt, ob ich heute überhaupt einen Artikel veröffentlichen soll. Brückentage sind eigentlich wie Wochenenden, niemand geht ins Internet, weil man zuhause faul auf der Terrasse sitzt. Trotzdem ist es kein Feiertag und deswegen gilt mein ich-schreibe-nur-an-Werktagen Paradigma auch für heute. Blöde selbstgemachte Regeln. Wie dem auch sei, feiern wir den heutigen Brückentag mit einem Artikel zum Thema Http Status Codes. Gar nicht mal so interessant das Thema, aber ich denke immer gut zum Nachschlagen und ich hoffe mal, dass die Suchmaschinen den Artikel lieben werden. Zumindest könnte ich mir vorstellen, dass man des öfteren danach googled. Jaja ich weiß, dieser Nils ist wieder nur auf Page Impressions aus und was soll ich sagen, diesmal stimmt es ja auch, bin aber wenigstens ehrlich. Liegt aber auch dran, dass ich für heute auch kein anderes Thema parat habe.

Kommen wir aber zu den Http Status Codes. Die bekanntesten sind wohl 404 (Seite nicht gefunden) und 301 (permanently moved). Es gibt aber auch noch andere, die vielleicht interessant sein könnten. Aber fangen wir doch einfach mal mit den Standards an:

  • 404 – Not found. Falls eine Seite auf einem Server nicht gefunden wird, so wird der 404 Status Code an den Browser gesendet. Jede Seite, die mit diesem Code ausgeliefert wird, wird niemals in die Suchmaschinen wandern, auch wenn dort Inhalt drinnen steht. 404 Seiten sollten vom Webmaster selbst gestaltet werden und vielleicht eine Sitemap beinhalten. Man kann auch raten, was der User gesucht hat und ihm Seiten anbieten auf denen er weitersurfen kann. Auf jeden Fall 404 senden, wenn diese Seite nicht existiert und auch nie existiert hat.
  • 301 – Permanently moved. Solltet ihr mal die Struktur eurer Seite umgebaut haben, so wie wir unsere Artikel von /archives/artikelname nach /blog/artikelname verschoben haben, dann müsst ihr diesen Code senden. So geht ihr sicher, dass, obwohl die Seite nicht mehr dort existiert, wo sie vermutet wurde, trotzdem alle eingehenden Links weiterhin voll zählen. Zeigt der Link auf eine 404, so ist der Link verloren.
  • 200 – OK. Der Name ist hier Programm. Seiten die gaz normal ohne irgendwelches Schi-Schi aufgebaut werden und keinen Fehler haben sind einfach OK. 200 sollte hier als Code gesendet werden.
  • 500 – Internal Server Error. Sehr ungerne gesehen, aber wenn euer Skript einen Fehler produziert, so sollte ein 500 kommen. Ihr signalisiert damit, dass es derzeit ein kleines Problem gibt. Die Suchmaschinen verzeihen solche kleinen Fehler und ihr fliegt nicht sofort aus dem Index. Ist doch auch schon mal was.

Diese vier sind schon mal die wichtigsten, die man auf jeden Fall auswendig können sollte, weil sie zum täglichen Handwerk gehören. Es gibt aber noch viele andere, die aber nur relativ wenig verbreitet sind. Eine längere Liste könnt ihr auf wikipedia finden. Auf ein paar werden wir hier aber trotzdem noch eingehen.

  • 403 – Forbidden. Wenn ihr Seiten habt, die ihr Passwort geschützt habt und zum Beispiel die Suchmaschinen nicht drauf sollten, dann solltet ihr einen 403 vorhalten. So wandern die Seiten nicht in den Index, auch wenn jemand mal einen Link auf einer anderen Seite posten sollte.

Eigentlich hatte ich ja gesagt, ich will noch ein paar aufzählen, aber jetzt wo ich mir die Liste so ansehe, fallen mir keine auf, die man im Internet antrifft. Zumindest kam ich nie in die Verlegenheit diese zu benutzen. Oder hat von euch schon mal jemand einen Http Header mit dem Status Code 412 Precondition Failed gesendet? Egal, mindestens einen Fall wird es geben, in dem solche Header Sinn machen, auch wenn ich ihn nicht kenne.

Achtung Anekdoten Alarm. Einer meiner damaligen Profs meinte mal, dass es in Amerika schon ein stehender Begriff geworden ist, dass man, wenn man m Büro nicht am Platz ist, 404 ist. „He’s 404!“ Ob die Geschichte stimmt? Keine Ahnung! Ich finde sie auf jeden Fall nett.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

13 Comments

  1. Ich finde, der 302 – moved temporaily ist noch erwähnenswert. Inwiefern ihn die Suchmaschinen behandeln weiß ich nicht, aber er könnte sich ganz gut für eine Wartungsseite eignen … Oder was würde sich da sonst anbieten?

    Reply
  2. Was wäre das für ein Tag, würde ich nicht meckern 😉

    Im Falle einer Passwort- oder sonst wie geschützten Seite bietet sich allerdings 401 an: Unauthorized 🙂

    Im Falle von Wartungsarbeiten oder geplanten Ausfällen sollten entsprechende Meldungen übrigens mit einem 503 versehen werden. Hier kann man nämlich zusätzlich sagen, wann der Dienst wieder da sein sollte.

    Reply
  3. Hi,

    ich bin jedenfalls bei der Arbeit und wäre sehr traurig gewesen, keinen Artikel lesen zu können…

    Zwei wichtige Codes wären vielleicht noch:

    302 – Moved Temporarily
    401 – Unauthorized

    Ersteres ist ähnlich dem 301, welche Auswirkingen 301 auf Suchmaschinen hat, wird euch sicher Nils erklären 🙂

    Das 401 wird u.a. dazu verwendet, diese well-known Browser-Login-Boxen zu machen, sagt aber prinzipiell erstmal aus, dass für diese Seite nicht genügend Berechtigungen vorhanden sind. (Basic Authentification,…)

    LG,
    Timo

    Reply
  4. Vorsicht 302 ist FOUND, 307 ist Moved Temporarily.
    Aber laut RFC (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) werd ich auch nicht richtig schlau daraus wo der unterschied wirklich liegt.

    Andere Status Codes über die ich gelegentlich stolpere:
    206 Partial Content: zb. download von einem größeren File welcher unterbrochen wurde. und mit einem erneuten request wieder aufgenommen wird.

    502 Bad Gateway: Zb. mod_proxy als transperenter proxy (verwende ich gelegentlich um zb. einen JBoss Server auf port 80 zugänglich zu machen ohne die Tomcat Apache integration verwenden zu müssen. Wenn JBoss/Tomcat gerade nicht läuft wird ein 502 gesendet.

    lg
    Ludwig

    Reply
  5. Ich finde da gibt es noch ein paar wichtige zu erwähnen (die genannten sollte eigentlich jeder kennen):

    304 – Not Modified: Sollte man nutzen, wenn man dynamisch Grafiken erzeugt usw, spart Traffic und richtig implementiert Server-Last

    503 – Service Unavailable: Kennen wir nicht alle die Wartungsmodus-Seiten, wenn ein Update durchgeführt wird?? 😉

    Reply
  6. Dein Paradigma „ich-schreibe-nur-an-Werktagen“ impliziert aber doch nicht „ich-MUSS-an-Werktagen-schreiben“? Oder ist es lediglich ein Auszug Deines Paradigmas?

    Nur so, damit Du vielleicht auch mal einen Brückentag „schwänzen“ darfst. Aber natürlich freu‘ ich mich auch heute über einen Artikel, der mich dazu verleitete, mal wieder über HTTP-Status Codes nachzudenken.

    Grüße,
    Flo

    Reply
  7. Gerade für PHP-Autoren ist 303 wichtig – damit erzwingt man bei einem erfolgreich verarbeiteten Affenformular einen GET-Request und verhindert das erneute Absenden der Daten, ohne die URL zu wechseln.

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen