Der Martin: URL Parameter korrekt per 301 an Ziel URL weiterleiten

Beitrag lesen

Hallo,

Das passiert dann automatisch oder? Sprich wenn ich / weglasse bekommt der Browser vom Server die kryptische Meldung, dass er / dazu packen soll. Das macht der Browser dann automatisch und schwups wird die Seite geladen?

ja, das geht alles vollaitomatisch. Nur die Art und Weise, wie es abläuft, unterscheidet sich danach, ob ich nur http://example.org angegeben habe oder http://example.org/foo.

Fall 1: http://example.org
Der Browser erkennt schon beim Analysieren dieser Adressangabe, dass sie unvollständig ist. Sie enthält nämlich keinen Dokument- oderRessourcennamen. Der ist aber in einem HTTP-Request zwingend erforderlich, denn die erste Zeile eines Requests ist z.B.
GET <ressource> HTTP/1.1
Also ergänzt der Browser völlig selbständig den Slash am Ende und kann damit
GET / HTTP/1.1
bilden. Das ist dann ein gültiger Request.

Fall 2: http://example.org/foo
Hier erkennt der Browser /foo als Dokument- oder Ressourcenbezeichner und kann damit sofort einen ordentlichen HTTP-Request konstruieren:
GET /foo HTTP/1.1
Nun fällt der Server darüber her und schaut nach, ob /foo ein Dokument ist, das er ausliefern kann. Existiert ein solches, liefert er es dem Client ohne Umschweife. Existiert jedoch ein Verzeichnis /foo, dann sendet der Server ein Redirect, also eine Aufforderung an den Client, die in etwa bedeutet "Versuch's nochmal unter http://example.org/foo/". Beachte den Slash, der an der Alternativ-Empfehlung angehängt wurde. Der Browser kommt dieser Aufforderung normalerweise ohne Rückfrage nach und setzt einen zweiten Request ab. Dabei korrigiert er auch die Schreibweise der Adresse in der URL-Zeile.

Oder bekommt der Nutzer die Meldung, das er / dazu packen soll?

Nein. Das wäre für Nutzer, die die Technik nicht kennen (also die allermeisten), nicht sinnvoll.

Falls ja verwirrt mich das. TS hatte doch geschrieben wenn kein / da ist dann liefert der Server automatisch (je nach Konfiguration) die Default Datei (z.B. index.php) zurück? Das wäre ja ein Wiederspruch zu dem was du schreibst.

Nein. Stellt der Server beim Analysieren des Requests fest, dass die angeforderte Ressource eigentlich ein Verzeichnis ist, dann ergänzt er intern den Namen des Standarddokuments. Das ist meistens sowas wie index.html oder index.php oder so. Davon bekommt der Browser aber nichts mit.

So long,
 Martin

--
Es gibt eine Theorie, die besagt, dass das Universum augenblicklich durch etwas noch Komplizierteres und Verrücktes ersetzt wird, sobald jemand herausfindet, wie es wirklich funktioniert. Es gibt eine weitere Theorie, derzufolge das bereits geschehen ist.
- (frei übersetzt nach Douglas Adams)