Heim

Uniform Resource Identifier

Dieser Artikel erläutert URI, den Uniform Resource Identifier, für andere Bedeutungen von Uri/URI siehe Uri (Begriffsklärung).
Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit, ihn zu verbessern, und entferne anschließend diese Markierung.

Ein Uniform Resource Identifier (URI) (engl. „einheitlicher Bezeichner für Ressourcen“) ist ein Identifikator und besteht aus einer Zeichenfolge, die zur Identifizierung einer abstrakten oder physischen Ressource dient. URIs werden zur Bezeichnung von Ressourcen (wie Webseiten, sonstigen Dateien, Aufruf von Webservices, aber auch z. B. E-Mail-Empfängern) im Internet und dort vor allem im WWW eingesetzt.

Ursprünglich führte Tim Berners-Lee den Begriff 1994 im RFC 1630 als Universal Resource Identifier ein. Erst später tauchte dann in offiziellen W3C-Dokumenten die Auflösung Uniform auf. Aus diesem Grund wird Universal gelegentlich – selbst in der Fachliteratur – als erster Namensbestandteil genannt.

URIs können als Zeichenfolge (kodiert mit einem Zeichensatz) in digitale Dokumente, insbesondere solche im HTML-Format eingebunden oder auch von Hand auf Papier aufgeschrieben werden. Einen Verweis von einer Webseite auf eine andere nennt man Hyperlink oder kurz Link.

Eine Erweiterung der nur aus druckbaren ASCII-Zeichen bestehenden URIs sind die Internationalized Resource Identifiers (IRIs).

Inhaltsverzeichnis

Aufbau

Der erste Teil eines URI (vor dem Doppelpunkt) gibt den Typ des URIs an, der die Interpretation des folgenden Teils festlegt:

<Schema>:<Schema-spezifischer Teil>

Viele URI-Schemata wie http oder ftp besitzen einen hierarchischen Aufbau:

<Schema>://[<Benutzer>[:<Passwort>]@]<Server>[:<Port>][/<Pfad>][?<Anfrage>][#<Fragment>]

<Server> gibt hierbei bei Schemata, die ein TCP- oder UDP-basiertes Protokoll verwenden, den Domainnamen oder die IP-Adresse des Servers an; <Port> den TCP-Port (optional und nur anzugeben, wenn vom Standardport des Protokolls abweichend). <Benutzername> und <Passwort> werden meistens nicht gebraucht, können aber z. B. beim Dienst FTP zur Authentisierung benutzt werden. Das bedeutendste Schema ist http für das Hypertext Transfer Protocol.

Hierarchische URIs können ferner relativ zu einem Basis-URI angegeben werden. Hierbei werden Schema, Server und Port sowie gegebenenfalls Teile des Pfades weggelassen.

Das letzte Element der URI kann, abgetrennt durch ein #, ein Fragmentbezeichner sein. Ein Beispiel dafür ist der Anker in HTML

Mit folgendem regulären Ausdruck kann das Format einer Zeichenkette auf eine URI überprüft werden. Die Ziffern in der zweiten und dritten Zeile zeigen die Gruppierungen der Klammern an und dienen lediglich als Verständnishilfe.

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
 1-         -1 3-         -3 5-    -56-       -6 8-   -8
  2-      -2      4-     -4             7-   -7    9--9

Beispiele

http://de.wikipedia.org/wiki/Uniform_Resource_Identifier
ftp://ftp.is.co.za/rfc/rfc1808.txt
file://C:\UserName.HostName\Projects\Wikipedia_Articles\URI.xml
ldap://[2001:db8::7]/c=GB?objectClass?one
gopher://gopher.floodgap.com
mailto:John.Doe@example.com
sip:911@pbx.mycompany.com
news:comp.infosystems.www.servers.unix
data:text/plain;charset=iso-8859-7,%be%fg%be
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2

Schemata

Unter anderem sind folgende Schemata definiert:

Auf der Website der IANA findet sich unter http://www.iana.org/assignments/uri-schemes.html eine vollständige Liste (englischsprachig).

URIs, URLs und URNs

Es werden folgende Unterarten von URIs unterschieden:

Ursprünglich sollte jeder URI in eine dieser beiden Klassen (oder weitere noch zu definierende) eingeteilt werden. Diese strenge Aufteilung wurde jedoch aufgegeben, da sie unnötig ist und einige Schemata (wie data) in keine der beiden Klassen passen.

Manche Schemata (wie mailto), die früher als URL bezeichnet wurden, sind heute keiner der beiden Klassen zuzuordnen.

Siehe auch