Das könnte dich auch interessieren

Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Software

URL oder URI? Wir zeigen euch den Unterschied

    URL oder URI? Wir zeigen euch den Unterschied

Auch Fry fragt sich ob es nun URI oder URL heißt. (Grafik: t3n)

Hier lest ihr, warum die einen ihre Hyperlinks auf URIs und andere auf URLs zeigen lassen. Und was zur Hölle ist eigentlich URN?

Kaum ein Thema spaltet Entwickler so wie die Diskussion, ob ein Hyperlink auf einen URI oder einen URL zeigt. Gerade weil man im Internet dubiose und auch schlicht falsche Quellen zu diesem Thema findet, habe ich mich auf die Suche nach der Antwort gemacht und mich dabei durch RFCs und W3C-Spezifikationen gewühlt. Ein kleiner Guide über den Irrglauben rund um URL, URI und URN aufzuklären.

URL vs URI

Wenn Entwickler im Internet nach dem Unterschied zwischen URI und URL suchen, dann finden sie relativ schnell einen Artikel aus dem Jahr 2007, der vom Onlinemagazin ajaxian (URI vs. URL: What’s the difference?) publiziert wurde. Was nicht gleich klar ist: Dieser Artikel ist falsch –  auch die vielen Kommentare weisen darauf hin. Anscheinend lesen aber relativ wenige Personen die Kommentare zu diesem Artikel, denn immer wieder wird auf diesen Link verwiesen – warum ajaxian diesen Artikel bis heute nicht verbessert hat, bleibt ein Rätsel. Für einen kurzen und schmerzlosen Einstieg seht euch dieses Venn-Diagramm an:

uri
URL und URN sind echte Teilmengen von URI. (Grafik: t3n)

Wie ihr sehen könnt, handelt sich bei dem Begriff URI eigentlich um drei Komponenten. Im RFC von Tim Berners-Lee findet ihr zu URI und URL folgende Passagen:

„A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. [...] A URI can be further classified as a locator, a name, or both. The term "Uniform Resource Locator" (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism (e.g., its network "location").“

Bevor wir aber darauf genauer eingehen können, möchte ich vorher den „Unified Resource Name“ oder kurz URN ansprechen.

Was ist ein URN?

Ein URN ist ein URI der eine Ressource dauerhaft und ortsunabhängig bezeichnet, und das nach dem Schema urn. Das heißt: mit URN könnt ihr einer Ressource einen dauerhaft gültigen Namen zuweisen, der die Ressource damit eindeutig identifizierbar macht. Wie bereits oben im RFC von Tim Berners-Lee angesprochen, kann eine Ressource alles sein, was sich eindeutig beschreiben lässt.

Das URN-Schema sieht übrigens so aus: urn:<NID>:<NID-spezifischer Teil>

Wobei sich der Schema-spezifische Teil des URIs in Namensräume (hier NID) gliedern lässt.

Unterschied zwischen URL, URI und URN

Das bedeutet, dass man URI in URL, URN oder beidem einordnen kann. Wobei ein URL anzeigt wo etwas ist (und wie man dorthin kommt) und URN beschreibt was etwas ist. Kurz gesagt: Ein URL oder URN ist zwar ein URI aber ein URI ist kein URL oder URN. Nachlesen könnt ihr das übrigens auch im RFC 3986/1.1.3 und im RFC 2396/1.2.

Beispiel

  • t3n.de – URI
  • http://t3n.de – URL (http zeigt euch wo die Ressource ist)
  • ftp://t3n.de – URL (ftp zeigt euch wo die Ressource ist)
  • urn:isbn:3827370191 – URN (eindeutige Indentifikation des Buches „Moderne Betriebssysteme“ von Andrew S. Tanenbaum)

Ich würde also dazu raten, im Zweifel von URI zu sprechen anstatt von URL. Der Grund dafür ist, dass du immer eine URI vor dir hast, aber nicht immer eine URL. Ich hoffe, ich konnte euch dieses Thema etwas verständlicher machen und die URI-URL-Verwirrung auflösen.

Welches Thema sorgt eurer Meinung nach noch für Verwirrung?

Finde einen Job, den du liebst

12 Reaktionen
AxWel
AxWel

Muss es in der Grafik nicht "URI = Uniform Ressource Identifier" heissen und nicht wie geschrieben "URI = Uniform Ressource Indentifier" ?

Grüsse

Antworten

FaXa
FaXa

Zur Ergänzung:

Ein URI beinhaltet ein "Schema", das eine Ressource näher beschreibt..
http:, ftp:, urn:, isbn:, foo:,...

Ist dieses Schema insbesondere eine Zugriffsmethode (~Protokoll) für eine Ressource, dann handelt es sich um ein URL..
http:, ftp:, file:,...

Ist dieses Schema ein universeller Bezeichner einer Ressource, dann wird dies adressiert mit..
urn:

Beste Grüße

Antworten

KingCrunch
KingCrunch

So ganz richtig ist das aber auch nicht. Zumindest in den Beispielen hakts:

"t3n.de – URI" ist auch eine (relative) URL. Der Unterschied ist vielmehr: Eine URI ist nur ein Identifier (dafür steht das "I") und ist nicht zwangsläufig verknüpfbar ("Link"), eine URL allerdings schon (dafür steht das "L"). Eine URL verspricht mir, dass wenn ich die URL mit dem passenden Tool aufrufe ich mit der referenzierten Resource interagieren kann. Allgemein für URIs gilt das nicht.

Ich zitier mal das Zitat :)

> The term "Uniform Resource Locator" (URL) refers to the subset of URIs that,
> in addition to identifying a resource, provide a means of locating the resource
> by describing its primary access mechanism (e.g., its network "location").

Heute noch Beispiele für echte URIs zu finden dürfte nahe unmöglich sein, aber in (echtem) RDF findet man das häufig, weil dort URIs zwingend notwendig sind, es aber häufig zu aufwendig wäre auch alle derefenzierbar zu machen. Je nachdem wie streng man die Definition auslegt ist bereits ein Dead-Link nur noch eine URI, aber keine URL mehr.

Antworten

Matthias Pfefferle
Matthias Pfefferle

Dein URI-Beispiel ist nicht ganz glücklich gewählt, weil eine URI (wenn sie kein relativer Pfad ist) auch ein scheme (http, xmpp, im, ...) hat. Ein perfektes Beispiel für eine URI ist beispielsweise xmpp:username@host.tld

Antworten

Katharina Tan
Katharina Tan

Super Artikel danke. Bin des Englischen sehr mächtig aber auf Deutsch hab ich es dann doch besser verstanden.

Herrschte bislang bei mir auch immer Verwirrung was URI und URL anbelangte, URN habe ich allerdings noch gar nicht kennengelernt.

Juhu, endlich kann ich wieder klugscheißen, haha Spaß ;)
Vielen Dank für den Beitrag.

Antworten

MI
MI

Zur Ergänzung: http://jendryschik.de/wsdev/einfuehrung/grundlagen/technische-fundamente#uri

Schon etwas älter, aber die Grundlagen ändern sich ja nicht.

Antworten

Christian Kilv
Christian Kilv

Ich würde also dazu raten, im Zweifel, von URI zu sprechen anstatt von URL.

=> Ich mein, hier hast Du URI und URL vertauscht. Kann das sein?

Antworten

Mark aus Hamburg
Mark aus Hamburg

Ja. Endlich hat sich jemand mal die Mühe gemacht, die Sache aufzuklären. Und wir haben endlich einen Beitrag, auf den wir, wie Sebastian schon sagte, verlinken können. Klasse!

Antworten

Dirk
Dirk

Es ist etwas vermessen zu sagen, dass andere Quellen oft falsch oder zumindest missverständlich zu sein, aber selbst den Artikel etwas fehlerhaft zu schreiben.

Widerspruch 1:
Wenn der Text stimmt, ist die Grafik falsch. Ist die Grafik richtig, ist der Text falsch.
Zum einen sagt der Text, dass URLs oder URNs URIs sind, aber URIs nie URLs oder URNs sein können.

Widerspruch 2:
Im Text wird behauptet, dass URIs laut RFC URLs, URNs oder Beides sein können. Die Grafik allerdings zeigt keine Schnittmenge zwischen URLs und URNs.

Letztendlich wäre es schön gewesen, wenn explizit vielleicht auch nur anhand Beispielen gezeigt wird, woran man URLs, URNs, deren Schnittmenge und wie URIs prinzipiell aussehen müssen.

Antworten

Uli
Uli

Sehr gut, passend und korrekt beschrieben. Nur eine winzige Kleinigkeit, die möglicherweise Verwirrung stiften könnte...
Du schreibst "Kurz gesagt: Ein URL oder URN ist zwar ein URI aber ein URI ist kein URL oder URN."
Es wäre passender zu schreiben "... aber ein URI ist nicht zwingend eine URL oder URN.", dann ein URI KANN ja eine URL/URN sein, MUSS es aber nicht!
Jööö, und schon hab ich meinen Vorsitz im Club der Erbsenzähler wieder um ein Jahr verlängert bekommen... ;)

Antworten

Martin
Martin

Also das kann ich nicht nachvollziehen. Du schreibst "Kurz gesagt: Ein URL oder URN ist zwar ein URI aber ein URI ist kein URL oder URN." Und empfiehlst am Ende: "Ich würde also dazu raten, im Zweifel, von URI zu sprechen anstatt von URL. Der Grund dafür ist, dass du immer eine URI vor dir hast, aber nicht immer eine URL." Aber wenn es um einen Hyperlink geht, wann habe ich denn dann wohl einen URN vor mir? Ist mir noch nicht untergekommen. Das muss aber natürlich nichts heißen.

Zudem gehst du der Frage nach, wohin ein Hyperlink führt? URI, URL oder URN. Nach meiner Auffassung sind Hyperlink-Ziele URLs. Hast du schon mal einen Link zu der URI "t3n.de" gesehen? Wo soll das hinführen? Der Browser wüsste nicht, wo er danach suchen soll. Wenn man statt dessen die URL "http://t3n.de" benutzt, weiß der Browser bescheid. Aus meiner Sicht sind die Hyperlinks also URLs.

Antworten

Sebastian Düvel

DAS IST FALSCH!

Ne, nur Spaß! :-) Schöner Artikel. Werd ich jetzt immer verlinken, wenn Unklarheit besteht.

Antworten

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen