Der abschließende Schrägstrich bei Pfaden

1 | 7 Kommentare | 2467 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "Der abschließende Schrägstrich bei Pfaden" mit Ihrem Wissen!

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

Bild zu Der abschließende Schrägstrich bei Pfaden
Fehlerhafte URL-Vorschläge des IE

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.


Wikiseite bearbeiten

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.

Mitarbeiter

Kommentare: Der abschließende Schrägstrich bei Pfaden

Neuen Kommentar schreiben
serverabteilung?
Beantworten

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

meggs am 17.04.2008 um 22:22
Re: serverabteilung?
Beantworten

Stimmt, hatte da beim Schreiben nicht aufgepasst. Ist verschoben.

David Danier am 18.04.2008 um 10:38
Mögliche Ursache
Beantworten

Ich glaube, dass hinter dem warum historisch etwas anderes steckt:

Verzeichnisse und Dateien mit gleichem Namen  
sh
1
2
3
4
pberndt@nijil ~ $ rm -f foo
pberndt@nijil ~ $ touch foo
pberndt@nijil ~ $ mkdir foo
mkdir: cannot create directory `foo': File exists

..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.

Firebird am 16.04.2008 um 16:12
Re: Mögliche Ursache
Beantworten

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.

Korrektur: Ein Link auf "foo.html" unter "/forum" wird als "/foo.html" aufgelöst, nicht auf "/forumfoo.html".

David Danier am 19.04.2008 um 09:51
Re: Mögliche Ursache
Beantworten

Ich glaube, dass hinter dem warum historisch etwas anderes steckt:

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 mkdir einen Fehler, mehr hab ich nicht getestet.

David Danier am 16.04.2008 um 16:25
...
Beantworten

Das sollte erstmal wissen! Ich habe das nie richtig realisiert :)

David On am 15.04.2008 um 15:29
Re: ...
Beantworten

Genau deswegen hab ich ja einen Artikel dazu geschrieben ;-)

David Danier am 15.04.2008 um 15:50