| # Referenzieren in HTML
| Allgemeines zum Referenzieren in HTML Mit vollständigen URIs referenzieren Mit absoluten Pfadangaben relativ zum Basis-URI referenzieren Mit relativen Pfadangaben relativ zum Basis-URI referenzieren

## Allgemeines zum Referenzieren in HTML

HTML-Dateien bestehen bekanntlich nur aus Text. Dennoch enthalten viele Web-Seiten Grafiken, Hintergrundgrafiken, Multimedia-Elemente, Java-Applets, Flash-Animationen und dergleichen. Solche Elemente werden in HTML in Form einer Referenz auf eine entsprechende Datenquelle notiert. Auch ein ausführbarer Verweis zu einer anderen eigenen oder fremden Web-Seite ist nur ausführbar, wenn er sein Verweisziel benennt. Für all diese Zwecke wird das Referenzieren in HTML benötigt.

Ebenso gibt es in Ergänzungssprachen wie Stylesheets oder JavaScript Stellen, an denen Sie andere Datenquellen referenzieren müssen.

Die Regeln zum Referenzieren sind dabei immer die gleichen. Der Grund ist das zentrale und einheitliche Adressierungsschema im Web, das unabhängig von der Syntax einzelner Betriebssysteme gilt und die genaue Adressierung beliebiger Quellen im Web erlaubt.

## Mit vollständigen URIs referenzieren

Mit vollständigen URIs müssen Sie dann referenzieren, wenn sich die gewünschte Datenquelle grob gesagt nicht im aktuellen eigenen Web-Angebot befindet.

Ein URI (Universal Resource Identifier - universelle Quellenbezeichnung) ist beispielsweise so etwas wie http://www.selfhtml.org/ oder http://de.selfhtml.org/html/allgemein/referenzieren.htm. Beide Beispieladressen sind aber gleichzeitig auch so genannte URLs (Uniform Resource Locators - einheitliche Quellenorter). Und dann gibt es - um die Verwirrung komplett zu machen - auch noch so genannte URNs (Uniform Resource Names - einheitlichen Quellennamen). Letztere sind dazu gedacht, um nicht wirklich existierende Datenquellen oder Quellen, die zwar existieren, aber durch kein bekanntes Internet-Protokoll im Netz abrufbar sind, dennoch eindeutig zu benennen. Ein URI ist also der Oberbegriff für URL und URN, wobei URI und URL bei typischen Adressen, hinter denen sich konkrete Dateien oder Datenquellen verbergen, und um die es hier geht, faktisch das Gleiche sind. Im HTML-Standard wird aber von URIs geredet.

### Beispiele für URIs:

    http://www.example.org/
    http://www.example.org/index.htm
    http://www.example.org/index.htm#impressum
    http://www.example.org/hintergrund.gif
    http://www.example.org/praesentation.pdf
    http://www.example.org/cgi-bin/suche.cgi?ausdruck=Hasenjagd
    http://www.google.com/search?hl=de&safe=off&q=Stefan+M%FCnz&lr=
    ftp://www.example.org/praesentation.pdf
    http://192.168.78.10/
    http://www.example.org:8082/geheim.htm

### Erläuterung:

Ein vollständiger URI besteht aus der Angabe eines Internet-Protokolls, z.B. `http` oder `ftp`, gefolgt von einem Doppelpunkt. Dahinter kann - das ist von Protokoll zu Protokoll verschieden - eine Zusatzangabe zu einem lokalen Netzwerknamen möglich sein. Diese Angabe wird in zwei Schrägstriche `//` eingeschlossen. Bei den meisten Adressen gibt es keine solche Angabe, weshalb die beiden Schrägstriche dort einfach ohne Inhalt nebeneinanderstehen.

Hinter diesen Angaben folgt die Adresse des Host-Rechners im Netz, auf dem sich die Datenquelle befindet. Das kann ein Domain-Name oder eine numerische IP-Adresse sein. Der Domain-Name ist übrigens in den obigen Beispielen `example.org`. Das `www` davor ist eine im Web typische und bei Web-Servern einstellbare Voreinstellung für Sub-Domains.

Hinter der Adressierung des Host-Rechners kann - durch einen Doppelpunkt abgetrennt, eine so genannte Portnummer folgen, wie im letzten der obigen Beispiele bei `:8082`. Das ist immer dann erforderlich, wenn die Datenquelle nicht über den Standard-Port des angegebenen Protokolls wie etwa `http` erreichbar ist, sondern über einen anderen Port. In der Praxis benötigen Sie die Portangabe eher selten, aber kennen sollten Sie sie.

Dahinter folgt schließlich die lokale Pfadangabe zur gewünschten Datenquelle. Egal um welches Betriebssystem es sich dabei handelt - Verzeichnispfade werden stets durch einfache Schrägstriche getrennt. Es ist Aufgabe der Server-Software auf dem Rechner, die Pfadangaben korrekt aufzulösen. Auf diese Weise brauchen Sie sich keine Gedanken zu machen, welches System der angesprochene Rechner benutzt.

Auf dem Rechner können beliebige Dateien und Datenquellen angesprochen werden. Voraussetzung ist, dass sie über das angegebene Protokoll wie z.B. `http` unter der Adressierung erreichbar sind. Es muss sich nicht unbedingt um Dateien handeln. So kann mit `#` und einem Namen dahinter etwa ein bestimmter Zielanker in einer HTML-Datei angesprochen werden. Wie solche Zielanker definiert werden, ist im Abschnitt Anker definieren und Verweise zu Ankern beschrieben. Auch Aufrufe von CGI-Scripts mit Parametern sind URIs, wie im obigen Beispiel `suche.cgi?ausdruck=Hasenjagd`.

Zeichen, die nicht in der ASCII-Codetabelle vorkommen oder in URIs Bedeutung haben (z.B. der Schrägstrich, der Doppelpunkt oder das Prozentzeichen) müssen Sie innerhalb von URIs maskieren. Das geschieht durch Angabe eines Prozentzeichens `%` mit anschließendem Hexadezimalwert für das Zeichen. Im obigen Beispiel sehen Sie das z.B. bei `M%FCnz`, wobei `FC` die hexadezimale Angabe der Zahl 252 ist. Die Zahl 252 ist wiederum in der Codetabelle von ISO 8859-1 die Nummer für den Buchstaben "ü".

### Beachten Sie:

Die voranstehenden Beschreibungen richten sich an Praktiker und erheben keinen Anspruch auf Vollständigkeit. Das Konzept der URIs ist noch wesentlich differenzierter als hier dargestellt. Bei Interesse können Sie es nachlesen: im RFC 1630, welcher sich mit URIs im WWW-Kontext befasst, und im RFC 3986, welcher sich mit der allgemeinen Syntax von URIs befasst.

Datenquellen im eigenen Web-Angebot können Sie natürlich auch mit vollständigen URIs referenzieren. Damit schränken Sie sich jedoch ein (siehe die einleitenden Bemerkungen des nächsten Abschnitts).

## Mit absoluten Pfadangaben relativ zum Basis-URI referenzieren

Diese Variante der Referenzierung können Sie wählen, wenn die gewünschte Datenquelle auf dem gleichen Host-Rechner liegt und über das aktuelle Protokoll und den Standard-Port erreichbar ist. Das klingt komplizierter als es ist. In dem vollständigen URI http://de.selfhtml.org/html/allgemein/referenzieren.htm ist der Teil /html/allgemein/referenzieren.htm eine absolute Pfadangabe relativ zur Basis-URI http://de.selfhtml.org. Innerhalb des eigenen Web-Angebots und der eigenen Domain oder Sub-Domain können Sie also mit solchen Pfadangaben arbeiten.

### Beispiele:

    /
    /index.htm
    /index.htm#impressum
    /hintergrund.gif
    /praesentation.pdf
    /cgi-bin/suche.cgi?ausdruck=Hasenjagd
    /search?hl=de&safe=off&q=Stefan+M%FCnz&lr=

### Erläuterung:

Der erste Schrägstrich hinter dem Basis-URI steht für das Wurzelverzeichnis des jeweiligen Internet-Services. Es handelt sich meistens nicht um das tatsächliche Wurzelverzeichnis des Rechners oder der Festplatte, auf die Sie da zugreifen. Bei Web-Servern ist beispielsweise einstellbar, welches tatsächliche Verzeichnis dem Web-Wurzelverzeichnis entsprechen soll.

Hinter dem Basis-URI kann alles folgen, was schon im Abschnitt Mit vollständigen URIs referenzieren angesprochen wurde.

## Mit relativen Pfadangaben relativ zum Basis-URI referenzieren

Diese Variante können Sie wählen, wenn Sie den jeweils aktuellen URI als Bezugs-URI wählen. Dann können Sie von hieraus relativ adressieren. Die HTML-Datei mit dem URI http://de.selfhtml.org/html/allgemein/referenzieren.htm enthält beispielsweise zum Referenzieren einer Grafik folgende Angabe: ../../src/logo.gif. Das bedeutet: gehe zwei Verzeichnisse nach oben, von dort aus ins Unterverzeichnis src und dort findest du die Datei logo.gif. Absolut gesehen hat diese Datei also den URI http://de.selfhtml.org/src/logo.gif.

Diese Form der relativen Adressierung ist innerhalb von Web-Projekten sehr zu empfehlen. Der Grund ist, dass Sie das Web-Projekt auf diese Weise problemlos an eine andere Adresse verschieben können, und trotzdem funktionieren noch alle projektinternen Verweise und Grafikreferenzen. Gerade wenn Sie Ihr Projekt auch mal auf CD-ROM oder anderen Medien veröffentlichen wollen, ist die relative Adressierung ein Muss.

### Beispiele:

    ./
    farben.htm
    ./farben.htm
    bilder/grafik.gif
    ./bilder/grafik.gif
    ../
    ../../../../woanders/datei.htm

### Erläuterung:

Eine Datei im gleichen Verzeichnis wie dem aktuellen können Sie einfach durch Angabe des Dateinamens referenzieren - im obigen Beispiel etwa die Datei `farben.htm`. Das aktuelle Verzeichnis referenzieren Sie durch `./` - also einem Punkt, gefolgt von einem Schrägstrich. Die Adressierung von `farben.htm` und `./farben.htm` im obigen Beispiel hat also den gleichen Effekt.

Eine Angabe wie `bilder/grafik.gif` referenziert eine Datei namens `grafik.gif` im Verzeichnis `bilder`, das ein Unterverzeichnis des aktuellen Verzeichnisses ist. Die Notation `./bilder/grafik.gif` hat wieder den gleichen Effekt wie `bilder/grafik.gif`.

Mit `../` referenzieren Sie das Verzeichnis über dem aktuellen Verzeichnis, egal wie es heißt. Mit `../../` referenzieren Sie das Verzeichnis über dem Verzeichnis über dem aktuellen Verzeichnis usw. Von jedem der so adressierten Verzeichnisse können Sie wieder auf deren Unterverzeichnisse zugreifen, wie im letzten der obigen Beispiele gezeigt.

| Kommentare und Credits
| Farben definieren in HTML

© 2007 Impressum