URI = Uniform Resource Identifier (einheitlicher Bezeichner für Ressourcen)
Der aktuelle Stand ist als RFC 3986 publiziert.
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.
Eine Erweiterung der nur aus druckbaren ASCII-Zeichen bestehenden URIs sind die Internationalized Resource Identifiers (IRIs).
...
Nach dem aktuellen Standard RFC 3986 besteht ein URI aus fünf Teilen:
1: scheme (Schema),
2: authority (Anbieter),
3: path (Pfad),
4: query (Abfrage)
5: fragment (Teil), wovon nur scheme und path in jedem URI vorhanden sein müssen. Die generische Syntax ist URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
Dabei steht hier-part für eine optionale authority und den path. Ist eine authority vorhanden, beginnt sie mit zwei Schrägstrichen, und der Pfad muss mit einem Schrägstrich beginnen. Der Standard verdeutlicht diese Komponenten mit zwei Beispielen:
foo://example.com:8042/over/there?name=ferret#nose \_/ \______________/\_________/ \_________/ \__/ | | | | | scheme authority path query fragment | _____________________|__ / \ / \ urn:example:animal:ferret:noseDas Schema (der Teil vor dem Doppelpunkt) gibt den Typ des URIs an, der die Interpretation des folgenden Teils festlegt. Bekannte Schemata sind beispielsweise http, ftp, urn und doi.
Viele URI-Schemata wie http oder ftp haben einen authority-Teil. Der Begriff authority bezieht sich auf eine Instanz, die die Namen in diesem Raum zentral verwalten kann. Ein Beispiel dafür ist das Domain Name System, das von globalen und lokalen Registraren verwaltet wird.
Die authority besteht aus einer optionalen Benutzerinformation (gefolgt von einem „@“), dem Host und einer optionalen (durch einen Doppelpunkt eingeleiteten) Port-Angabe. Sie folgt auf zwei Schrägstriche („//“) und wird von einem einfachen Schrägstrich („/“), einem Fragezeichen („?“), einem Doppelkreuz („#“) oder dem Ende des URIs begrenzt. Der Host-Teil kann aus einer IP-Adresse, einer IPv6-Adresse (in eckigen Klammern „[...]“) oder einem registrierten Namen bestehen. Gültige Werte sind beispielsweise de.wikipedia.org user@example.com:8080 192.0.2.16:80 [2001:db8::7] Die mögliche Angabe eines Passwortes in der Benutzerinformation („user:password@...“) ist überholt und sollte nicht mehr verwendet werden, da URIs oft im Klartext übertragen und protokolliert werden. Gleiches gilt für vertrauliche Benutzernamen. Path[Bearbeiten] Der Pfad enthält – oft hierarchisch organisierte – Angaben, die zusammen mit dem Abfrageteil eine Ressource identifizieren. Falls in der URI eine im vorangegangenen Abschnitt beschriebene authority angegeben wurde, muss der path mit einem Schrägstrich ("/") beginnen; gibt es keine authority, darf der path nicht mit einem doppelten Schrägstrich ("//") beginnen. Dadurch ist die eindeutige Interpretation gesichert. Er wird von einem Fragezeichen („?“), einem Doppelkreuz („#“) oder dem Ende des URI begrenzt. Gültige Pfade sind beispielsweise /over/there example:animal:ferret:nose Query[Bearbeiten] Der Abfrageteil (Query String) beinhaltet nicht-hierarchische Daten zur Identifizierung von Ressourcen. Er wird mit einem Fragezeichen („?“) eingeleitet und von einem Doppelkreuz („#“) oder dem Ende des URI begrenzt. Eine gültige Abfrage ist beispielsweise ?title=Uniform_Resource_Identifier&action=submit Fragment[Bearbeiten] fragment ist der Fragmentbezeichner und referenziert einen Teil innerhalb einer Ressource. Es wird von einem Doppelkreuz („#“) eingeleitet. Ein Beispiel dafür ist der Anker in HTML. Beispiele[Bearbeiten] http://de.wikipedia.org/wiki/Uniform_Resource_Identifier ftp://ftp.is.co.za/rfc/rfc1808.txt file:///C:/Dokumente%20und%20Einstellungen/Benutzer/Desktop/Uniform%20Resource%20Identifier.html file:///etc/fstab geo:48.33,14.122;u=22.5 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%fa%be tel:+1-816-555-1212 telnet://192.0.2.16:80/ urn:oasis:names:specification:docbook:dtd:xml:4.1.2 git://github.com/rails/rails.git crid://broadcaster.com/movies/BestActionMovieEver Ein Beispiel mit sehr vielen Elementen gleichzeitig in der URI: http://nobody:password@example.org:8080/cgi-bin/script.php?action=submit&pageid=86392001#section_2 URI-Referenzen
Oft verwenden Anwendungen nicht den vollständigen URI, sondern eine abgekürzte Syntax, beispielsweise um Platz zu sparen oder den einfachen Umzug auf andere Server zu ermöglichen. Manche URI-Schemata begrenzen in ihrer Definition zudem die Syntax auf eine bestimmte Form. Unter dem Begriff der URI-Referenzen werden unterschiedliche Schreibweisen zusammengefasst. Absolute URIs[Bearbeiten] Ein absoluter URI besteht mindestens aus scheme und hier-part (also einer authority und/oder einem path). Beispiele sind http://de.wikipedia.org file://localhost/var/spool/dump.bin
Relative Referenz
Wenn eine URI-Referenz nicht mit einem scheme beginnt, wird angenommen, dass es sich um eine relative Referenz handelt. Die Auflösung einer relativen Referenz zu einem absoluten URI erfolgt abhängig vom Kontext nach standardisierten Regeln. Eine relative Referenz besteht aus einem path sowie optional aus query und fragment. Es werden drei Arten von relativen Referenzen unterschieden: Beginnt der Pfad ohne Schrägstrich, handelt es sich um eine relative Pfad-Referenz, beispielsweise image.png, ./image.png und ../images/image.png. Beginnt der Pfad mit einem einzelnen Schrägstrich („/“), handelt es sich um eine absolute Pfad-Referenz. Beginnt der Pfad mit doppelten Schrägstrichen („//“), handelt es sich um eine Netzwerk-Pfad-Referenz. Referenz innerhalb desselben Dokumentes[Bearbeiten] URI-Referenzen können auf dasselbe Dokument verweisen, dessen Teil sie sind. Die häufigste Anwendung ist das Doppelkreuz („#“), gefolgt von einem Fragment-Bezeichner. Suffix-Referenzen[Bearbeiten] Weit verbreitet ist die Angabe von URI-Referenzen ohne Bezeichnung des Protokolls, etwa www.wikipedia.de. Unter der Annahme, dass sich aus dem Suffix (im Beispiel www, DNS-Namen werden von rechts nach links aufgebaut) auf das Protokoll (hier http) schließen lässt, funktioniert die Auflösung solcher Referenzen. Allerdings ist diese Auflösung von entsprechenden Annahmen und zudem von der jeweiligen Software abhängig. Deshalb sollten Suffix-Referenzen vermieden werden. Schemata[Bearbeiten] Unter anderem sind folgende Schemata definiert: Schema crid Fernsehsendungen data Data-URL: direkt eingebettete Daten file Dateien im lokalen Dateisystem ftp File Transfer Protocol geo Geografische Koordinaten gopher Gopher http Hypertext Transfer Protocol ldap Lightweight Directory Access Protocol mailto E-Mail-Adresse news Newsgroup oder Newsartikel pop Mailboxzugriff über POP3 rsync Synchronisation von Daten mit rsync sip SIP-gestützter Sitzungsaufbau, z. B. für IP-Telefonie tel Telefonnummer urn Uniform Resource Names (URNs) ws WebSocket wss xmpp Extensible Messaging and Presence Protocol für Jabber Identifier Auf der Website der IANA befindet sich eine vollständige Liste der offiziellen Schemata.[1] Daneben haben sich einige inoffizielle Schemata für einzelne Anwendungen oder gängige Protokolle etabliert: Schema about browserinterne Informationen[2] afp Apple Filing Protocol[3] callto Telefonnummern (u. a. Skype und NetMeeting) coffee Hyper Text Coffee Pot Control Protocol daap Digital Audio Access Protocol doi Digital Object Identifier ed2k ED2k-URI-Schema von eDonkey2000/Kademlia feed RSS-Feeds finger Finger[4] fish Files transferred over Shell protocol git Git irc/ircs Internet Relay Chat[5] javascript Ausführung von JavaScript-Code[6] lastfm Last.fm magnet Magnet-Link mms Microsoft Media Server rtmp Real Time Messaging Protocol sftp SSH File Transfer Protocol[7] skype Telefonnummern (nur Skype) smb Server Message Block[8] ssh Secure Shell[7] svn/svn+ssh Apache Subversion view-source Quelltextanzeige für eine Webseite[9] webcal iCalendar wyciwyg What You Cache Is What You Get, Firefox-interne Anzeige für die Darstellung gecachter Inhalte ymsgr Yahoo Messenger Unterarten[Bearbeiten] Venn-Diagramm für URI, URL und URN Es werden folgende Unterarten von URIs unterschieden: Uniform Resource Locators (URLs)benennen eine Ressource über ihren primären Zugriffsmechanismus wie zum Beispiel http oder ftp. Danach folgt die Bezeichnung des Ortes (engl. location) der Ressource im Netz – meistens der Domain-Name. URLs waren ursprünglich die einzige Art von URIs, weshalb der Begriff URL oft gleichbedeutend mit URI verwendet wird.Uniform Resource Names (URNs)mit dem URI-Schema urn identifizieren eine Ressource mittels eines vorhandenen oder frei zu vergebenden Namens, z. B. urn:isbn oder urn:sha1. 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 oder das früher den URLs zugeordnete mailto) in keine der beiden Klassen passen. Siehe auch[Bearbeiten] Digital Object Identifier (DOI) Persistent Uniform Resource Locator (PURL) Internationalized Resource Identifier (IRI) Weblinks[Bearbeiten] RFC 1630 – Universal Resource Identifiers in WWW (Status: INFORMATIONAL) RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax (Status: STANDARD) Web Naming and Addressing (englisch) Uniform Resource Identifer (URI) Schemes. Offizielle Liste der URI-Schemata bei der IANA Tim Berners-Lee: Cool URIs Don’t Change. (englisch) Zur weisen Festlegung von URI Einzelnachweise[Bearbeiten] 1.Hochspringen ? Vollständige Liste der offiziellen Schemata (englischsprachig) 2.Hochspringen ? tools.ietf.org 3.Hochspringen ? tools.ietf.org 4.Hochspringen ? tools.ietf.org 5.Hochspringen ? tools.ietf.org 6.Hochspringen ? tools.ietf.org 7.? Hochspringen nach: a b tools.ietf.org 8.Hochspringen ? tools.ietf.org 9.Hochspringen ? msdn.microsoft.com Quelle: http://de.wikipedia.org/wiki/Uniform_Resource_Identifier