Der abschließende Schrägstrich bei Pfaden
Anzeige Hier werben
Der Unterschied zwischen pfad/ und pfad
Grundsätzlich liegt ein großer Unterschied zwischen dem Aufruf von http://foobar.sample/path und http://foobar.sample/path/, der für den Endnutzer aber oftmals nicht deutlich wird. Bei der ersten URL wird eine normale Datei gesucht, mit der zweiten ein Verzeichnis.
Für den Endnutzer wird das allerdings meist nicht sichtbar, da der Aufruf ohne abschließenden Schrägstrich (/) bei den heutigen Webservern eine Weiterleitung erzeugt. Durch die Weiterleitung wird hierbei ein zweiter HTTP-Request nötig, was den Webserver zusätzlich belastet. Für die Weiterleitung selbst sind außerdem oftmals Extrakomponenten des Webservers nötig, wie beispielsweise mod_dir im Apache. Hier hält sich der Overhead allerdings in Grenzen, da mod_dir nahezu immer eingebunden sein wird.
Historischer Hintergrund
In heute gängigen Dateisystemen ist es nicht möglich in einem Verzeichnis gleich benannte Dateien und Verzeichnisse zu haben. Deswegen macht es auf Dateisystem-Ebene keinen Unterschied, ob man pfad oder pfad/ schreibt, beide Schreibweisen bezeichnen das gleiche Dateisystem-Objekt.
Die Weiterleitung verdeutlicht dies und ändert gleichzeitig die Adresse im Browser. Diese Adressänderung ist notwendig, da relative Links ansonsten nicht funktionieren würden. Fehlt der abschließende Schrägstrich würde die relativ verlinkte Datei im darüberliegenden Verzeichnis gesucht.
Wieso pfad auf pfad/ weiterleiten?
Ein Webmaster könnte nun auf die Idee kommen keine Weiterleitung anzubieten, einerseite um den (geringen) Overhead zu vermeiden, andererseite vielleicht aus der Idee heraus unterschiedliche Inhalte auszuliefern. Das hat aus mehreren Gründen aber keine Zukunft:
Usability
Gerade wegen der Weiterleitung sehen viele Besucher einer Seite keinen Unterschied zwischen den beiden Adressen. Deswegen wird oftmals bei händischer Eingabe oder beim Verlinken der entsprechenden Webseite der abschließende Schrägstrich weggelassen. Sieht der Benutzer dann einen Fehler, so wird er diesen nicht wie gewohnt lösen können und im Zweifelsfall der Webseite den Rücken kehren.
Spezialfall: Der Internet Explorer
Als besonders problematisch erweist sich der Browser aus dem Hause Microsoft. Gibt man in die Adresszeile eine Adresse ein, so wird in der History vom Internet Explorer nach entsprechenden Einträgen gesucht und eine Liste mit Vorschlägen angeboten. Hierbei wird der abschließende Schrägstrich einfach weggelassen (getestet mit IE6 bis IE8 Beta1).
Das bedeutet, dass Besucher, die http://foobar.sample/path/ und später versuchen diese Adresse durch einfaches Eintippen in die Adresszeile als Vorschlag http://foobar.sample/path angeboten bekommen. Folgt man nun dieser Adresse und existiert keine Weiterleitung so findet der Besucher nicht mehr zur Seite zurück, dank 404er-Fehlermeldung schreibt er das Webangebot möglicherweise als gelöscht/aufgegeben ab.
Best Practice
Bei der Erstellung von Webseiten ist es deswegen zwingend notwendig eine Weiterleitung auf die richtige Adresse - mit abschließendem Schrägstrich - anzubieten. Arbeitet man mit statischen Dateien übernimmt das meist der Webserver, benutzt man ein eigenes CMS oder erstellt eine Webseite selbst so muss diese Weiterleitung möglicherweise selbst übernommen werden. Egal wie: Die Weiterleitung sollte vorhanden sein, eine Doppelnutzung der unterschiedlichen Adressen ist nicht möglich.
Auch beim Verlinken von Webseiten sollte darauf geachtet werden den abschließenden Schrägstrich anzugeben, wenn es sich um ein Verzeichnis handelt. Selbst wenn eine Weiterleitung vorhanden ist wird so wenigstens ein wenig die Last des Seitenbetreibers vermindert.
Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 4 Personen an der Seite "Der abschließende Schrägstrich bei Pfaden" mitgewirkt.
Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "Der abschließende Schrägstrich bei Pfaden" hier bearbeiten.
-
David Danier arbeitet seit mehr als neun Jahren im Bereich Web Programmierung und ist unter anderem Geschäftsführer der Webagentur Team23 sowie Webmasterpro.de.
-
graphic, motion & web design - kernreaktor - kinderturnen
-
arbeitet seit längerem als Webdesigner und vor allem -entwickler. Er ist Webmaster von Webmasterpro.de und leitet den Flashcounter-Service.
-
hat keine Beschreibung angegeben. Eine Beschreibung kann man unter dem Punkt "Profil bearbeiten" im Kontrollzentrum eintragen.



serverabteilung?
man sollte den artikel etwas besser kennzeichnen um verwechslung mit vektorpfaden zu vermeiden. dachte ich nämlich als ich den titel gelesen hab =D
vllt ne versheepung in "server" etc
Re: serverabteilung?
Stimmt, hatte da beim Schreiben nicht aufgepasst. Ist verschoben.
Mögliche Ursache
Ich glaube, dass hinter dem warum historisch etwas anderes steckt:
..auf unixoiden Systemen kann man ohnehin nicht Dateien und Verzeichnisse mit selbem Namen parallel haben. Ich glaube, dass das unter Windows nicht anders ist. Der Webserver hat also schon mal kein Problem und liefert immer den selben Content aus.
Die beschriebene Problematik entsteht also erst durch virtuelle Dateisysteme und Programmierer, die nicht rechtzeitig an diese historisch gewachsene Einschränkung denken ;)
Notwendig ist die Weiterleitung bei reellen Verzeichnissen auf jeden Fall, damit der Browser URLs aus Hyperlinks richtig zusammensetzt. Sonst würde aus http://www.webmasterpro.de/forum halt im Browser http://www.webmasterpro.de/forumfoo.html.
Re: Mögliche Ursache
Korrektur: Ein Link auf "foo.html" unter "/forum" wird als "/foo.html" aufgelöst, nicht auf "/forumfoo.html".
Re: Mögliche Ursache
Etwas anderes als? Hab doch dazu gar nix geschrieben....
Aber natürlich hast du rechts, das steckt dahinter. Hatte irgendwie nicht dran gedacht das überhaupt zu erwähnen, ist aber natürlich interessant. Willst du das vielleicht zum Artikel hinzufügen?
Unter Windows gibts zumindest in der Eingabeaufforderung mit
mkdireinen Fehler, mehr hab ich nicht getestet....
Das sollte erstmal wissen! Ich habe das nie richtig realisiert :)
Re: ...
Genau deswegen hab ich ja einen Artikel dazu geschrieben ;-)