Universität-Gesamthochschule Siegen

Uniform Resource Locators (URLs)

Warum am Ende eines Verzeichnis-URL ein Slash "/" stehen sollte


Gibt es einen Unterschied zwischen einer URL wie z.B. " http://www.domain.de/dir " und " http://www.domain.de/dir/ "?

Im allgemeinen führen beide URL-Angaben zum selben Resultat, die entsprechende Index- bzw. Welcome-Datei vom Verzeichnis "/dir" würde geladen.
Dennoch gibt es einen Unterschied, ob bei einer solchen URL-Angabe ein Slash "/" am Ende angegeben wird oder nicht.
Wird ein Slash am Ende angegeben, also z.B. "http://www.domain.de/dir/", wird auch direkt auf die Index-Page (z.B. index.html oder welcome.html) zugegriffen und diese geladen.
Wird jedoch kein Slash am Ende der URL angegeben, wird zuerst versucht auf eine Datei (in diesem Beispiel also "/dir") zugegriffen. Der Server erkennt jedoch, daß "/dir" keine Datei sondern ein Verzeichnis ist und sendet dem Browser einen Redirect auf "/dir/". "Redirect" bedeutet hierbei, daß der Browser bei seiner ersten Verbindung nur die Mitteilung für die richtige URL bekommt und eine deshalb eine neue Verbindung aufbauen muß.
Abgesehen von einer unnötigen Netzbelastung durch den Aufbau einer neuen Verbindung zum Server (TCP-Slowstart), ist insbesondere für Nutzer mit langsamer Netzanbindung eine deutliche Zeitverzögerung beim Laden der Seite bemerkbar.
Eine URL wie z.B. "http://www.domain.de/dir" stellt somit keine gültige Adresse dar.


Gilt das Selbe auch für eine URL-Angabe wie z.B. " http://www.domain.de "?

Nein, hier verhält sich die Sache anders, da ein Browser immer als minimale Request-URL einen Slash "/" schicken sollte (siehe HTTP-Spezifikationen), würde also sowohl bei "http://www.domain.de", wie auch bei "http://www.domain.de/" der Server direkt die Haupseite des Servers liefern. Dies entspricht dem HTTP-Request "GET / HTTP/1.0".
Ein "Redirect" wird also nicht gesendet.


Aber eine Seite wird doch auch ohne den Slash am Ende korrekt geladen? Oder nicht?

Im Prinzip sollte dies so sein, allerdings kommt es trotzdem manchmal zu Fehlern, weil manche Browser unter bestimmten Umständen einen "Redirect" falsch behandeln. Wurde z.B. die URL "http://www.domain.de/dir" angefordert, aber vom Browser nicht korrekt umgesetzt, so würde ein relativer Link auf z.B. die Seite "page.html" zur Browser-Anfrage "http://www.domain.de/dirpage.html" führen, welche natürlich fehlschlagen würde.
Weiterhin kann es bei einigen wenigen Servern zu Fehlern kommen, wenn auf dem Server ein Verzeichnis komplett auf ein anderes umgemapped wird (also ein mapping der URLs "/dir/*" auf die URLs"/anderes/dir/*") und der Server dann vergißt auch die URL "/dir" umzumappen.
Die angeforderte Seite würde in diesem Fall also erst gar nicht geladen.


Schlußfolgerung:

Man sollte grundsätzlich bei der Erstellung von HTML-Dokumenten darauf achten, korrekte URL-Angaben MIT SLASH am Ende zu verwenden, um evtl. Probleme und Fehler zu vermeiden!
Der Nutzer wird es einem danken...


Kommentare bitte an Lars Eilebrecht (sfx@unix-ag.uni-siegen.de).


© Uni-GH Siegen, Webmaster (webmaster@www.uni-siegen.de)
(created: 7-Apr-1996, changed: 3-Sep-1996)