Uniform Resource Locator
Ein Uniform Resource Locator (Abk. URL; englisch für einheitlicher Ressourcenzeiger) identifiziert und lokalisiert eine Ressource, beispielsweise eine Webseite, über die zu verwendende Zugriffsmethode (zum Beispiel das verwendete Netzwerkprotokoll wie HTTP oder FTP) und den Ort (engl. location) der Ressource in Computernetzwerken. Der ursprüngliche Standard wurde im Dezember 1994 als RFC 1738 publiziert, er ist inzwischen durch die Veröffentlichung mehrerer anderer RFCs obsolet.
URLs sind eine Unterart der generellen Identifikationsbezeichnung mittels Uniform Resource Identifiern (URIs). Da URLs die erste und häufigste Art von URIs darstellen, werden die Begriffe häufig synonym verwendet. Im allgemeinen Sprachgebrauch werden URLs auch als Internetadresse oder Webadresse bezeichnet, wobei damit (der umgangssprachlich häufigen Gleichsetzung von Internet und WWW folgend) meist speziell URLs von Webseiten gemeint sind.
Aufbau
Der grundsätzliche URL-Aufbau besteht aus einer die Zugriffsmethode festlegenden Schema-Bezeichnung (englisch scheme) und einem Schema-spezifischen Teil (scheme-specific part), die durch einen Doppelpunkt getrennt sind:
<scheme>:<scheme-specific-part>
wobei scheme
oft, aber nicht zwingend gleich lautet wie das
zugrundeliegende Netzwerkprotokoll (bei ftp
oder http
ist das beispielsweise der Fall, aber nicht bei mailto
oder
file
).
Mögliche URL-Teile sind beispielsweise bei http
:
|------------------ Schema-spezifischer Teil ------------------| https://max:muster@www.example.com:8080/index.html?p1=A&p2=B#ressource \___/ \_/ \____/ \_____________/ \__/\_________/ \_______/ \_______/ | | | | | | | | Schema⁺ | Kennwort Host Port Pfad Query Fragment Benutzer ⁺ (hier gleich Netzwerkprotokoll)
bei mailto
:
mailto:max@example.org \____/ \_____________/ | | Schema⁺ | E-Mail-Adresse gemäß RFC 5322 ⁺ (hier kein Netzwerkprotokoll)
bei news
(in diesem Beispiel ist weder ein Netzwerkprotokoll
noch eine Host-Adresse enthalten):
news:alt.hypertext \__/ \___________/ | | Schema | Name der Newsgroup
bei file
:
file:///verzeichnis/unterverzeichnis/datei \__/ \___________________________________/ | | Schema | Pfad zu einer lokalen Datei im Dateisystem des Rechners, der den URL interpretiert
Streng genommen hat dieses Schema die Form
file://<host>/<path>
, wobei aber der Host-Teil
praktisch nicht verwendet wird, da das file
-Schema mangels einer
Möglichkeit, ein Netzwerkprotokoll für den Zugriff auf die Datei anzugeben, kaum
sinnvoll über ein Netzwerk benutzt werden kann.
File-URLs werden beispielsweise in der Programmiersprache Java
verwendet, um auf diese Weise auf lokale Dateien zuzugreifen.
Je nach Browser ist oftmals das Öffnen von file
-Links nur nach
spezieller clientseitiger Konfiguration oder unter Zuhilfenahme von AddOns etc.
möglich.
Schema (scheme)
Legt fest, mit welcher technischen Methode die Ressource angesprochen werden
soll. Ist meistens, aber nicht zwingend gleichlautend mit dem verwendeten
Netzwerkprotokoll,
über das die Ressource lokalisiert werden kann. Beispiele sind
HTTP,
HTTPS
oder FTP,
aber auch mailto
(zum Schreiben einer E-Mail) oder
file
(zum Zugriff auf lokale Dateien).
Schema-spezifischer Teil (scheme-specific part)
Je nach Schema sind unterschiedliche spezifische Angaben erforderlich und
möglich. In den meisten Fällen beginnt er mit der Zeichenkette //
,
jedoch ist bei manchen Varianten auch lediglich der Doppelpunkt definiert. Die
folgenden Beispiele beziehen sich auf das Hypertext Transfer Protocol (HTTP).
Benutzer und Kennwort (user, password)
Falls benötigt, können Login-Informationen aus Benutzername (user) und Kennwort (password) mit übermittelt werden. Diese werden, voneinander durch Doppelpunkt getrennt, dem Host mit einem trennenden At-Zeichen (@) vorangestellt.
Auch wenn für dieses Beispiel das Protokoll HTTP gewählt wurde, ist die Angabe von Benutzername und Kennwort als Teil des URLs nicht Teil der HTTP-Spezifikation! Aktuelle Browser akzeptieren diese URL-Syntax zwar, fragen aber beim Benutzer nach, ob er sich wirklich mit den angegebenen Daten anmelden möchte. Der Internet Explorer 6 (ab Windows XP SP2) und neuere Versionen fallen hier aus dem Rahmen, indem sie diese URL-Syntax rundweg als fehlerhaft ablehnen. Mit einem Registry-Eintrag kann man sie zum gleichen Verhalten zwingen, wie es die Vorgänger bis Version 5.5 zeigen: Diese übernehmen die Anmeldedaten ungefragt und übergeben sie direkt an den Server.
Bei einigen anderen Protokollen, etwa FTP, ist die Angabe der Benutzerdaten in der gezeigten Form dagegen völlig korrekt und durch die Standards abgedeckt.
Host
Die Host-Komponente wird in Form einer IPv4-Adresse in dezimaler Schreibweise durch Punkte getrennt, in Form einer IPv6-Adresse in hexadezimaler Schreibweise durch Doppelpunkte getrennt und in eckige Klammern gesetzt oder in Form eines FQDN notiert.
Port
Die Angabe des Ports erlaubt die Ansteuerung eines TCP-Ports. Wird kein Port angegeben, so wird der Standard-Port des jeweiligen Protokolls verwendet – zum Beispiel bei HTTP 80, bei HTTPS 443 und bei FTP 21.
Pfad (Path)
Der Pfad beschreibt eine bestimmte Ressource (diese kann sich beispielsweise mit der Verzeichnisstruktur des Zielsystems decken, also etwa eine Datei oder ein Verzeichnis) auf dem Server. Der Pfad kann auch leer sein. Ein leerer Pfad kann optional durch einen Slash ersetzt werden und ist zu diesem gleichbedeutend.
Die Interpretation (Datei
oder Verzeichnis;
Textdatei liefern oder Skript
ausführen) bleibt dem Server überlassen. Ein typisches Beispiel für die
Interpretationsfreiheit ist das Verhalten bei der Anforderung des Pfades
/
durch einen Client: Je nach Einstellung liefert der Server etwa
den Inhalt einer namentlich ausgezeichneten Datei (wie /index.html
,
/README
, /HEADER
), ohne dass dies für den anfragenden
Client ersichtlich ist. Genauso kann der Server allerdings – je nach
Protokoll – auch explizit zu dieser Ressource weiterleiten oder eine
Verzeichnisauflistung ausgeben.
Abfrage (Query)
Im Fall des HTTP kann nach dem eigentlichen Ressourcenzeiger – getrennt durch ein Fragezeichen – ein Query-String folgen. Damit können zusätzliche Informationen übertragen werden, die server- oder clientseitig weiterverarbeitet werden können.
Fragment
Nach einem Doppelkreuz
kann ein Teil der Ressource referenziert werden, typischerweise ein Anker in einer HTML-Seite,
zu dem nach dem Aufrufen der Seite automatisch hinuntergescrollt
wird: Der URL http://example.com/dokument.html#absatz3
würde, in
dem hier fiktiven Dokument, den Browser dazu veranlassen, zum Anfang des dritten
Absatzes zu scrollen.
Beispiele
ftp://max:muster@ftp.example.com
… FTP mit Benutzer und Kennworthttp://de.wikipedia.org
… Website ohne Pfad (Aufruf der Startseite)http://de.wikipedia.org/wiki/Uniform_Resource_Locator
… Website mit Pfadhttps://de.wikipedia.org
… wie Aufruf der Website ohne Pfadangabe, allerdings mit dem verschlüsselten Hypertext Transfer Protocol Securemailto:hans@example.org
… zum Schreiben einer E-Mail an die angegebene Mailadresse (öffnet den Standard-Mailclient mit einer neuen, leeren Nachricht, in der die TO-Adresse vorausgefüllt ist)news:alt.hypertext
… Anzeige einer Usenet-Newsgruppe (generisch, ohne Angabe des Netzwerkprotokolls NNTP)nntp:alt.hypertext
… Anzeige einer Usenet-Newsgruppe (mit Angabe des Netzwerkprotokolls NNTP)telnet:example.org
… Start einer Telnet-Sessionfile:///foo/bar.txt
… Zugriff auf eine lokale Datei
Relative URLs
Neben den bisher dargestellten absoluten oder vollständigen URLs gibt es auch relative URLs. Sie sind nur innerhalb eines Kontextes gültig, von dem sie Eigenschaften erben. Ihnen fehlt die Ortsangabe im World Wide Web oder einem echten Intranet. Sie sind vor allem in der Gruppe http, https und ftp möglich, aber auch bei mailto. Das entspräche einer Telefonnummer ohne Vorwahl (des Landes, des Ortsnetzes).
Beginn | Bedeutung | Anmerkung | Beispiel |
---|---|---|---|
// |
Gleiches Protokoll | sinnvoll, um http: oder
https:
der momentanen Umgebung zu verwenden |
//example.com/pfad/zu/datei |
/ |
Gleiche Domäne (host:port ), „Wurzelverzeichnis“
|
/pfad/zu/datei | |
# |
Gleiche Ressource | Wirkung über Nebenwirkung | # |
# fragment |
Gleiche Ressource, Sprungmarke | #knoten | |
nichts | Gleiche Ressource | ||
../ |
ein Pfad-Segment aufwärts | Ein Server muss keine durch / gegliederte
Pfad-Segmentierung unterstützen. |
/pfad/zur/../zur/datei
|
./ sonstige |
gleiches Pfad-Segment |
Relative URLs werden oft eingesetzt, um eine Gruppe zusammengehörender
Ressourcen wahlweise in einem lokalen Dateisystem
oder an unterschiedlichen Orten in verschiedenen Netzwerk-Domänen unverändert
abzulegen und aufeinander zu verlinken. Im Übrigen ist die Interpretation des
Identifikators (Zeichenkette zwischen host:port
und #
)
jedem Server freigestellt – zwar handhabt es die weitaus überwiegende Anzahl der
Server und jede Standard-Software wie oben angegeben, jedoch können
/
genau wie ? % &
nach eigenen Regeln
ausgewertet werden.
Bei mailto:
wäre eine relative URL mailto:Nachbar
(ohne @
) – sie gilt nur im lokalen Netzwerk.
Liste erlaubter Zeichen
Reservierte Zeichen sind:
- Sonderzeichen
/ ? # [ ] @ : $ & ' ( ) * + , ; =
Nicht reservierte Zeichen sind:
- Sonderzeichen
- . _ ~
- Buchstaben
A–Z, a–z
- Ziffern
0–9
In bestimmten Fällen sind außerdem das Leerzeichen
(dieses alternativ auch mit +
,
und %
) in Prozentkodierung
darzustellen.
Sprachgebrauch
Im deutschen Sprachgebrauch hat URL häufig den weiblichen Artikel, wird aber auch mit männlichem Artikel verwendet. Die Wahl des Genus hängt davon ab, ob es in Anlehnung an die deutsche Übersetzung die Adresse (feminin) gebildet wird oder mittels der Grammatikregel, dass Hauptwörter auf -or (hier Locator oder -identifikator) oder -er (-bezeichner, -lokalisierer, -anzeiger) im Deutschen stets maskulin sind.
URLs in Texten
Anhang C von RFC 3986 empfiehlt, URIs (und damit auch URLs) in Texten
- eigenständig auf einer Zeile,
- mit doppelten Anführungsstrichen
"http://example.com/"
oder - mit spitzen Klammern
<http://example.com/>
gegen den Kontext und vor allem gegen die Interpunktion des Satzes abzugrenzen.
URLs und Suchmaschinen
Auch wenn URLs technisch komplex aufgebaut sein können, können schlechte
gestalte URLs die Auffindbarkeit von Inhalten durch Suchmaschinen behindern. Aus
diesem Grund empfiehlt der Suchmaschinenbetreiber Google z.B. den
bedachten Einsatz von Parametern in URLs.
Google hat auch die Begrifflichkeit der kanonischen
URL eingeführt. Eine kanonische URL ist demnach die URL der Seite, von der
Google annimmt, dass sie die repräsentativste von mehrfachen Verweisen auf einer
Website ist. Aus Sicht einer Suchmaschine sind z.B. die URL-Varianten
"http://www.example.com/" , "http://example.com/" ,
"https://www.example.com/" und "https://example.com/"
vier eigenständige
Versionen, die – wenn keine kanonische URL definiert ist – zu
"Duplicate-Content" und damit einer suboptimalen Sichtbarkeit führen können.
Die Prüfung der URL-Struktur wird oft im Rahmen der sogenannten Suchmaschinenoptimierung durchgeführt.
Geschichte
Name und Standardisierung
In der Anfangszeit des WWW (ab Ende 1990) fand sich in der Dokumentation auf
info.cern.ch
zunächst keine dezidierte Bezeichnung für die
Adressierung von Webseiten, das Thema wurde nur beschreibend als
„W3 document address“, „W3 name“, „W3 address“ oder „Hypertext
Name“ dokumentiert.
Die damals spezifizierte (und in den ersten Webseiten verwendete) Gestalt der
Adressierung entspricht aber schon der später als „URL“ standardisierten Form;
im Standardisierungsprozess wurden zwar Änderungen erwogen, wegen der inzwischen
schon fortgeschrittenen Verbreitung des WWW aber wieder verworfen.
Im Sommer 1992 versuchte Tim Berners-Lee beim IETF-Meeting in Boston eine Arbeitsgruppe ins Leben zu rufen, die den Zugriff auf Dokumente im Web standardisieren sollte. Er schlug als Namen Universal Document Identifier (UDI) vor, womit nach seiner Vorstellung ein allgemeiner Internet-Standard definiert werden sollte. Der Name wurde aber als zu „arrogant“ kritisiert, was vor allem am Wort universal (engl. für allgemeingültig, umfassend) lag. Stattdessen wurde von der Gruppe der bescheidenere Begriff uniform (engl. für einheitlich) vorgeschlagen. Außerdem wurde „Document“ durch „Resource“ ersetzt, um zu unterstreichen, dass das Web mit anderen Informationssystemen integriert werden sollte. Die URI-Arbeitsgruppe kam schließlich zustande, wobei noch eine weitere Namensänderung für den zu definierenden Standard beschlossen wurde: „Identifier“ wurde durch „Locator“ ersetzt, um zu betonen, dass es sich bei Web-Adressen nicht um dauerhaft registrierte Adressen handelt.
Aufgrund der konfliktreichen Arbeitsweise der Gruppe wurde der erste – noch informelle – Standardisierungsentwurf RFC 1630 erst im Juni 1994 von Berners-Lee vorgelegt. Er nennt den von Berners-Lee favorisierten Namen „Universal Resource Identifiers“ im Titel und definiert bereits die Begriffe URI, URL und URN. Im Dezember 1994 wurde von der Gruppe mit RFC 1738 der Standard mit dem Titel „Uniform Resource Locators (URL)“ veröffentlicht.
Bestandteile
Berners-Lee entlehnte die einzelnen Bestandteile zum Teil bewusst von bereits existierenden Systemen, um Webadressen neuen Anwendern möglichst unmittelbar vertraut respektive logisch erscheinen zu lassen:
- Der Pfad
(
http://www.example.com/verzeichnis/unterverzeichnis/datei.html
) zitiert direkt die Pfad-Syntax in UNIX-Dateisystemen. - Die mit einem Doppel-Schrägstrich eingeleitete Notation des Hosts stammt
aus der Syntax des Netzwerk-Dateisystems
von Apollo
Domain/OS, in der Pfade auf entfernten Hosts nach dem Muster
//example.com/verzeichnis/unterverzeichnis/…
adressiert wurden. - Das mit einem Doppelkreuz
markierte Fragment ist der in den USA
üblichen Schreibweise für Apartment-
und Suitenummern
in Postadressen entlehnt: 12 Foo Avenue #34 steht für
Foo Avenue Nr. 12, Apartment 34. Entsprechend bedeutet
datei.html#ressource
Teil (Abschnitt, Kapitel …)ressource
innerhalb des Dokumentsdatei.html
.
Literatur
- Tim Berners-Lee, Mark Fischetti: Der Web-Report. Der Schöpfer des World Wide Webs über das grenzenlose Potential des Internets. Econ, München 1999, ISBN 3-430-11468-3 (englisch: Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web.).
© biancahoegel.de
Datum der letzten Änderung: Jena, den: 16.09. 2022