Wie fange ich an?/Dateiorganisation

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Fast jeder Mensch hat zu Hause einen Computer, auf dem Programme, Texte, Bilder und weitere Medien in Form von Dateien mehr oder weniger organisiert gespeichert sind.

Für die eigene Arbeit und das eigene Webprojekt ist es hilfreich, hierfür spezifische Regelungen, so genannte Konventionen für Dateinamen, -endungen und die Hierarchie von Dokumenten innerhalb einer Domain zu beachten.

Ordner und Dateien sollten systematisch benannt und geordnet sein, damit

  • die Dateien jetzt und auch später leicht auffindbar und zugänglich sind,
  • längeres Suchen von Dateien oder das Vergleichen verschiedener Versionen von Dateien vermieden wird,
  • Änderungen nachvollziehbar sind und
  • Dateien nicht versehentlich gelöscht oder überschrieben werden.

Konventionen für Dateinamen

Auf modernen Computern sind Sie in der Wahl von Dateinamen ziemlich frei. Groß- und Kleinschreibung, Leerstellen, Umlaute, alles kein Problem. Es gibt aber Fallstricke.

  • Es gibt spezielle Zeichen, die nicht verwendet werden dürfen, weil sie im Dateisystem eine Bedeutung haben. Dazu gehören der Doppelpunkt und die Schrägstriche / und \ als Trennzeichen für Laufwerksbuchstaben und Ordner, und die Zeichen * und ? als Jokerzeichen in der Dateisuche.
  • Sie können unter Windows eine Datei zwar SelfHtml Wiki nennen, aber eine weitere Datei namens selfhtml wiki ist nicht möglich. Das liegt daran, dass Windows zwar die Schreibweise speichert (es ist case preserving), sie beim Vergleich von Dateinamen aber nicht beachtet (case insensitive). Obwohl die Mac Computer seit Version 10 auf einem Unix Derivat laufen, verhalten sie sich genauso. Nur die Dateisysteme von Linux, seinem Derivat Android und auch von iOS können Dateien mit Namen, die sich nur in der Schreibweise unterscheiden, auseinander halten.
  • Ein Dateipfad - also der Dateiname zusammen mit der Ordnerkette, über die man die Datei erreicht - kann in der Länge limitiert sein.
  • Es gibt etliche Zeichen, die in URLs nicht verwendet werden dürfen und maskiert werden müssen. Verwenden Ihre Dateien, die Sie für Ihre Website nutzen, solche Zeichen im Namen, müssen Sie jedesmal an die richtige Maskierung denken. Das kann sehr umständlich werden.

Auf CDs oder USB Sticks finden Sie gelegentlich noch das FAT-Dateisystem. Dort kann es passieren, dass ein Datei- oder Ordnername aus maximal 8 Zeichen plus einer Namenserweiterung aus 3 Zeichen bestehen darf[1], und alle Zeichen in Großbuchstaben umgewandelt werden. Beispielsweise wurde das Computerspiel Hamurabi mit nur einem m geschrieben, um in dieses Schema zu passen. Auf solchen Systemen betreibt man heute keine Webserver mehr, aber vielleicht möchten Sie das Abbild einer Website auf einen USB-Stick schreiben?

Die Folge von case-insensitiven Dateisystemen ist, dass Sie möglicherweise auf einem Windows PC entwickeln und Ihre Website sauber läuft. Dann laden Sie sie auf einen Linux-Webserver hoch, und wenn Sie Ihre Seite von dort laden, hat sie plötzlich kein Layout mehr und Grafiken fehlen, weil Ihr Stylesheet common.CSS heißt und eine Bilddatei logo.PNG, Ihr HTML aber common.css und logo.png einbinden möchte. Auf einem unter Windows laufenden Server fällt dieser Fehler nicht auf.

Um solche Probleme zu verhindern, sollten Sie sich strenge Konventionen für Dateinamen auferlegen.

Empfehlung: Verwenden Sie …
  • konsequente Kleinschreibung für Dateinamen und -endungen, um Missverständnissen vorzubeugen.
  • Dateinamen nur bis zu 256 Zeichen Länge, auch wenn einige Systeme längere Namen erlauben.
  • nach Möglichkeit keine Leerzeichen, Umlaute oder ß in den Dateinamen, obwohl dies dank URL-Codierung und UTF-8 nicht mehr so problematisch ist. Für ein internationales, nicht-deutschsprachiges Publikum und zum Abtippen bestimmter URLs sollten aber lieber alphanumerische ASCII-Zeichen ohne Großbuchstaben verwendet werden.
  • als weiteres Sonderzeichen nur den Unterstrich "_". Andere Satzzeichen können in bestimmten Fällen problematisch sein.
    • Fragezeichen "?" und Sternzeichen "*" sollten Sie auf jeden Fall vermeiden, da diese Zeichen bei fast allen Systemen eine besondere Bedeutung haben.
    • Auch auf Leerzeichen sollten Sie unbedingt verzichten. (Diese werden z. B. von der Mediawiki-Software in Unterstriche umgewandelt.)

Dateiendungen

Der Teil des Dateinamens, der hinter dem letzten Punkt steht, ist die Endung (oder Namenserweiterung). Die Endung wird von Webservern verwendet, um den Inhaltstyp der Datei zu bestimmen und sie mit dem zugehörigen MIME-Type an den Browser zu senden. Ein falscher MIME-Typ bedeutet zumeist, dass der Browser die Datei nicht verarbeiten kann.

Sie könnten auf Ihrem Webserver natürlich eine frei gewählte Zuordnungstabelle von Endungen zu MIME-Typen hinterlegen, aber davon kann nur abgeraten werden. Es macht unnötig Arbeit, und niemand wird verstehen, warum Ihre HTML-Datei als start.hyp statt index.html ausgeliefert wird. Halten Sie also unbedingt die üblichen Dateiendungen ein[3]. Der Webserver kann dann seine Standardtabelle verwenden, um anhand der Dateiendung zu entscheiden, mit welchem MIME-Typ er die Datei an den Browser sendet. Und der Browser entscheidet anhand des MIME-Typs, wie er die Datei behandelt. Hier einige Beispiele:

  • Gewöhnliche HTML-Dateien erhalten entweder die Endung .html oder .htm.
  • HTML-Dateien mit enthaltenen Server Side Includes erhalten die Endung .shtml oder .shtm.
  • Dateien, die PHP Programmcode enthalten, erhalten die Endung .php. Das Ergebnis des PHP Programmlaufs wird an den Browser geschickt. Das ist zumeist HTML, aber man kann von PHP auch CSS, JavaScript oder völlig andere Ressourcen wie etwa Bilder generieren lassen. In diesem Fall ist das PHP-Programm für das Setzen des richtigen MIME-Typs zuständig.
  • Es gibt auch andere serverseitige Programmiersprachen, wie Perl, ASP, ASP.NET, JSP oder Ruby. Dateien, die Programmcode dieser Sprachen enthalten, haben Endungen wie .pl, .asp, .aspx, .jsp oder .rb
  • Als fortgeschrittener Entwickler übernehmen Sie die Abbildung von URLs auf Inhalte möglicherweise selbst. In dem Moment ist der Zwang zu bestimmten Endungen nicht mehr gegeben - aber sinnvoll bleibt es.

Verzeichnisse und Standarddateien

Viele Webadressen enden mit einem Schrägstrich, zum Beispiel https://www.example.org/verzeichnis/ – sie verweisen auf ein Verzeichnis, ohne weitere Angabe einer bestimmten HTML-Datei hinter dem Schrägstrich. Insbesondere bei Verweisen auf eine Domain, etwa https://www.example.org, fehlt er meist gänzlich und ist auch nicht erforderlich.

Der Webserver hat nun zwei Optionen. Bevorzugt verwendet er eine Liste von Default- oder Standarddateien. Üblich sind hier index.html, index.htm oder index.php. Man findet auf Windows-Systemen mit IIS Webserver auch welcome.htm und default.asp. Der Webserver probiert die Namen in seiner Default-Liste der Reihe nach durch und liefert die erste aus, die er findet.

Die zu prüfenden Dateinamen werden in der Webserver-Konfiguration festgelegt. Beim Apache-Webserver, am weitesten verbreitet, lautet die Einstellung DirectoryIndex; einige Hoster erlauben auch das Ändern über eine Weboberfläche.

Beim Aufruf von https://www.example.org/verzeichnis/ aus dem obigen Beispiel würde der Browser also die Ressource /verzeichnis/ vom Server abrufen und der Webserver würde in aller Regel die Datei /verzeichnis/index.html ausgeben. Es könnte aber auch /verzeichnis/start.rb oder default.aspx sein, das entscheidet sich anhand der Servereinstellung und bleibt dem Browser verborgen.

Grundsätzlich sollten als index benannte Dateien, egal ob index.html, index.txt oder anderes, für diesen Zweck reserviert bleiben. Ein einheitlicher Name erleichtert die Verwaltung und eventuelle Serverumzüge des Projektes erheblich.

Es muss sich bei dieser Datei übrigens nicht um eine HTML-Datei handeln. Wird als Default-Datei zum Beispiel index.txt oder index.jpg eingestellt, kann bei Aufruf eines Verzeichnisses auch eine einfache Textdatei oder ein Bild ausgegeben werden.

Wird die eingestellte Standarddatei nicht gefunden, oder ist die Direktive DirectoryIndex auf disabled (deaktiviert) gesetzt, versucht der Server, den Inhalt des Verzeichnisses aufzulisten. Empfehlenswert ist das im Normalfall nicht - aber wenn Sie einen Ordner mit Bildern veröffentlichen möchten, kann es nützlich sein, keine HTML-Seite hinzufügen zu müssen, die nichts weiter als eine Liste mit Links auf diese Bilddateien enthält.

Ist weder eine Standarddatei vorhanden, noch die Verzeichnisauflistung aktiviert, erzeugt der Zugriff einen HTTP-Fehler 403 (Forbidden).

Siehe auch: Referenzieren in HTML
Siehe auch: Webserver/htaccess/Verzeichnisoptionen

Sonderfall Backlink

Zurück zur Startseite
 <a href="/">...</a>

Beginnt eine URL-Referenz mit dem Slash /, dann bedeutet das: Gehe vom höchsten erreichbaren Punkt der Verzeichnishierarchie aus. Im Web ist das das root-Verzeichnis der jeweiligen Domain, lokal ist es der Startpunkt des Filesystems, also auf einer Windows-Maschine typischerweise C:\.

So wird also im Normalfall die index.html im root-Verzeichnis geöffnet.

Dateiorganisation

Hypertext schreiben - Information verteilen

HTML steht für Hypertext Markup Language. Die Sprache ist ausgelegt für hypertext-gerechte Informationsverteilung. Der Anwender soll zwischen Informationen "navigieren", die ihn interessieren. Wenn Sie dieser Themenkomplex näher interessiert, sollten Sie das Kapitel über Hypertext im Kurs über Links und Verweise lesen.

Bei der Hypertext-Informationsverteilung ist es nötig, dass die angebotene Information auf kleine, in sich abgeschlossene Informationseinheiten verteilt wird, die untereinander auf eine nachvollziehbare und einsichtige Weise vernetzt sind.

Wenn Sie beispielsweise Ihren Fußballverein im WWW präsentieren wollen, gehört dazu die übliche Einstiegsseite mit Verweisen zu den Unterseiten. Die Unterseiten sollten jeweils an gleicher Stelle einen Rückverweis auf die Einstiegsseite enthalten. Je eine Unterseite könnten Sie in diesem Beispiel etwa für die Geschichte, für die Vereinsberichte, für die aktuellen Tabellenstände, und für die derzeitigen Spieler spendieren. Die Seite für Spieler könnte nochmals Verweise zu Seiten enthalten, auf denen jeweils ein einzelner der Spieler vorgestellt wird.

Bei solchen Unter-Unter-Seiten ist ein Rückverweis zur nächsthöheren Ebene wie auch zur Einstiegsseite angebracht. Wichtig sind auch die Querverweise. Wenn ein Spieler bereits lange dabei ist, findet sich bestimmt auch ein Querverweis zu einem wichtigen Ereignis der Vereinsgeschichte. Bei den Erläuterungen zum aktuellen Tabellenstand sind wiederum Querverweise zu den besten Torschützen usw. denkbar.

So entsteht ein sinnvolles Netz aus Einzelinformationen. Zusätzliche Verlinkungen sollten die Navigationsmöglichkeiten ergänzen. So ist es in vielen Fällen sinnvoll, so genannte Guided Tours anzubieten, also eine Abfolge von Seiten, die der Anwender bequem durchblättern kann. Egal welche Art von Projekt Sie in Angriff nehmen: immer sollten Sie den hier skizzierten Blick für die Strukturierung und Vernetzung der Information im Auge behalten.

Was hier als "Seite" oder "Unterseite" bezeichnet wird, sollte in einem Web-Projekt jeweils eine HTML-Datei sein. Schrecken Sie nicht vor der Anzahl der entstehenden Dateien zurück. Die saubere Strukturierung der Information sollte oberstes Gebot sein.

Die Technik der Vernetzung zwischen Projektdateien mit HTML wird im Abschnitt über HTML/Tutorials/Links beschrieben. Weitere Tipps für die Konzeption Ihres WWW-Projekts erhalten Sie im Abschnitt von der Idee zum Projekt.

Unterverzeichnisse

Bei jedem etwas größeren Projekt werden Sie schnell feststellen, wie viele HTML-, Grafik- und andere Dateien sich dabei ansammeln. Um den Überblick zu behalten, sollten Sie sich entweder ein sinnvolles Dateinamenschema überlegen, oder Sie legen Unterverzeichnisse an, etwa für Dateien zu einem Themengebiet, oder für Grafiken usw. Wenn Sie Ihr Projekt im Web veröffentlichen wollen, müssen Sie beim Einsatz von Unterverzeichnissen vorher klären, ob Sie auf dem Server, wo das Projekt einmal abgelegt werden soll, die Berechtigung bzw. Möglichkeit haben, Unterverzeichnisse anzulegen. Denn Sie werden in diesem Fall auf dem Server-Rechner die gleiche Verzeichnisstruktur erstellen müssen, die Sie lokal beim Erstellen gewählt haben, damit alle Verweise und Referenzen funktionieren.

Cool URIs don't change!

Damit die Adressen von Webseiten später möglichst nicht geändert werden müssen (denn dies führt dazu, dass Verweise von anderen Seiten schlagartig ins Leere führen, bis die jeweiligen Autoren ihre Verweise anpassen), schlägt ein Mitglied des W3-Konsortiums vor, Verzeichnis- und Dateinamen von Anfang an so allgemein auszulegen, dass diese niemals ungültig werden.

Dies erfordert, dass Verzeichnis- und Dateinamen keine Informationen enthalten dürften, die sich später ändern könnten. Hauptsächlich bleibt als unveränderliche Information das ursprüngliche Erstellungsdatum des Dokuments.

So verweist https://www.w3.org/1998/12/01/chairs auf ein Dokument über ein Treffen des W3-Vorsitzes (chair = Vorsitz) am 1.12.1998.

Empfehlung:
  • Verwenden Sie für Ihre Webseiten eindeutige „sprechende“ Namen, die dem Nutzer sofort verständlich sind.
  • Verändern Sie diese nicht, damit Nutzer nicht später auf eine Fehlermeldung anstelle der gewünschten Inhalte stoßen.

Weitere Informationen zu diesem Thema finden Sie auf Englisch unter Hypertext Style: Cool URIs don't change.


Weblinks

  1. Wikipedia: 8.3 auch 8-Punkt-3-Namen
  2. SELF-Forum: Funktioniert alles super ..., aber nur lokal. Über den Server wird das CSS aber komplett ignoriert.
  3. heise.de: Dateiendungen im Überblick