Headers: welche gibt es, wann sind s. einzusetzen?

Josh

Legendäres Mitglied
Hi alle.

Bisher, unwissend wie ich bin, habe ich mit PHP sorglose einfach Seiten weitergeleitet, ohne zuvor einen Headerwert zu schicken:

header("location: was-weiss-ich.php");

Nun möchte ich das natürlich verbessern, und so frage ich: was für Headercodes gibt es und wann sind sie einzusetzen? Sollen sie nur eingesetzt werden, um Spiders und Robots zu informieren, oder haben sie sonst noch einen Sinn?

Danke und Grüsse,
Josh
 
Welche Header es gibt, findest du unter http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14
wink.gif


Zu deinen restlichen Fragen kann ich so direkt nichts sagen, weil ich mich damit auch nicht unbedingt näher beschäftigt habe
unsure.gif
 
QUOTE (Josh @ Mi 12.1.2005, 11:26)Bisher, unwissend wie ich bin, habe ich mit PHP sorglose einfach Seiten weitergeleitet, ohne zuvor einen Headerwert zu schicken:

header("location: was-weiss-ich.php");

Permanente Weiterleitungen würde ich so lösen:

CODE header("HTTP/1.1 301 Moved Permanently");
header("Location: was-weiss-ich.php");
header("Connection: close");


So wird der User oder Robot auf die neue Seite weitergeleitet und der Robot erhält den Status, dass die Seite neu nur noch unter der angegebenen URL gefunden wird und aktualsiert das im Index (hoffentlich).


QUOTE Nun möchte ich das natürlich verbessern, und so frage ich: was für Headercodes gibt es und wann sind sie einzusetzen? Sollen sie nur eingesetzt werden, um Spiders und Robots zu informieren, oder haben sie sonst noch einen Sinn?

Nein, sie werden auch für den User eingesetzt, falls dieser eine alte URL eingibt, oder einen Link mit einer alten URL anklickt so kommt der auch direkt auf die neue Seite.

Es gibt noch diverse andere Headers. Aber bis jetzt finde ich den 301er den wichtigsten... Auch nützlich wäre noch der 410, aber na ja... Ich gebe mich gerade in diesem Thread mit dem ab...


Gruss Oliver
 
mein gott das sind ja brutal viele!
ohmy.gif

kennt wer ein listing, welches die für einen webmaster gebräuchlichsten header vorstellt?

@ oliver:
da hab ich die quick reply wohl genau kurz vo deinem posting geöffnet...
wink.gif

danke für die antwort, ich werde das andere topic mal anschauen.
 
weitere frage...
smile.gif


folgendes szenario:
der user will sich einloggen. dazu gibt er in eine form username und passwort ein. beim submit werden auf der nächsten seite die angaben überprüft und dann wird die seite per header("location: ...") weitergeleitet. dies dient dem zweck, dass wenn der user f5 zum refreshen des browsers drückt, kein hinweis à la "die seite, die sie ansehen wollen, enthält POST-daten. wenn sie die daten nochmals senden..... blablabla".

welchen header soll ich da verwenden? ein spider wird ja garantiert gar nie soweit kommen!
rolleyes.gif
ist da das senden eines bestimmten headers überflüssig?

danke. josh
 
QUOTE ein spider wird ja garantiert gar nie soweit kommen!

Darauf würde ich nicht bauen ;-) Konnte jetzt nicht ganz nachvollziehen, was Du machst, (vesch. Seiten?) aber ich denke nimm einfach mal einen 302.


QUOTE header("HTTP/1.1 301 Moved Permanently");
header("Location: was-weiss-ich.php");
header("Connection: close");

Wie wichtig ist der Connection: close? Ich tendiere dazu mir den zu schenken ;-)
 
QUOTE welchen header soll ich da verwenden? ein spider wird ja garantiert gar nie soweit kommen! ist da das senden eines bestimmten headers überflüssig?

Ich glaube in diesem Fall wird sowieso der 302er gesendet. Schau mal deine Logs an, dort siehst dus recht gut. Bei mir wird so normalerweise der 302er gesendet.


QUOTE Wie wichtig ist der Connection: close? Ich tendiere dazu mir den zu schenken ;-)

Der ist glaube ich wirklich nicht soo wichtig. Was ich bis jetzt festgestellt habe, wird so einfach auch die Adressleiste des IE (meistens) sauber aktualisiert und anders eben (meistens) nicht.
 
QUOTE Ich glaube in diesem Fall wird sowieso der 302er gesendet. Schau mal deine Logs an, dort siehst dus recht gut. Bei mir wird so normalerweise der 302er gesendet.

Ja, wenn immer Du nur einen header("location: was-weiss-ich.php") sendest, wird ein 302 gesendet.
 
QUOTE folgendes szenario:
der user will sich einloggen. dazu gibt er in eine form username und passwort ein. beim submit werden auf der nächsten seite die angaben überprüft und dann wird die seite per header("location: ...") weitergeleitet. dies dient dem zweck, dass wenn der user f5 zum refreshen des browsers drückt, kein hinweis à la "die seite, die sie ansehen wollen, enthält POST-daten. wenn sie die daten nochmals senden..... blablabla".

welchen header soll ich da verwenden? ein spider wird ja garantiert gar nie soweit kommen! ist da das senden eines bestimmten headers überflüssig?


Ein Post-Fomular sollte ein Spider wohl nicht ausfüllen, aber sag niemals nie.... ;-)
Hier ist eine Liste mit deutschen Übersetzungen zu den Statuscodes.
http://www.asphelper.de/Referenz/HTTPStatusCodes.asp
Ist sicher übersichticher als die komplette Spezifizierung.


QUOTE Wie wichtig ist der Connection: close? Ich tendiere dazu mir den zu schenken ;-)

Was bringt es, sich eine Zeile solch einfachen Codes zu sparen und die Verbindung nicht sauber zu schließen?
Wenn man standardmäßig auf solche Sachen verzichtet, produziert man doch einen Bug nach dem anderen???


QUOTE Ja, wenn immer Du nur einen header("location: was-weiss-ich.php") sendest, wird ein 302 gesendet.

Verlassen sollte man sich aber m.E. nicht drauf. Wenn man den Status-Code selber gesetzt hat, weiß man sicher woran man ist.
Wenn dann später die Anwendung auf einen anderen Webserver umgestellt wird, der hier nicht so reagiert, gibt das kein böses erwachen.
 
Zurück
Oben