Was ist der Unterschied zwischen URL und URI?
Autor: Redaktion Domeny.ForSale Veröffentlicht
Kurz gesagt: Eine URI identifiziert eine Ressource. Eine URL gibt zusätzlich an, wo sich die Ressource befindet und wie man auf sie zugreifen kann. Nach der klassischen Einteilung ist jede URL eine URI, aber nicht jede URI eine URL. Eine Webadresse kannst du also sowohl als URL als auch als URI bezeichnen. Im Alltag ist der Begriff „URL“ meist verständlicher.
Was bedeutet URI?
URI steht für Uniform Resource Identifier, also einen einheitlichen Ressourcenidentifikator. Eine Ressource kann eine Webseite, ein Foto, ein Dokument oder ein über eine API bereitgestelltes Element sein. Auch ein Objekt, das sich nicht einfach aus dem Internet herunterladen lässt, kann eine Ressource sein.
Die wichtigste Aufgabe einer URI ist die Identifizierung: Sie bezeichnet eine bestimmte Ressource. Der Identifikator allein muss weder angeben, wo sich diese Ressource befindet, noch wie man auf sie zugreifen kann.
Ein Beispiel ist urn:isbn:9780131103627. Dieser Identifikator bezeichnet eine Publikation anhand ihrer ISBN. Er verweist weder auf eine bestimmte Buchhandlung oder Bibliothek noch auf eine Datei zum Herunterladen. Er identifiziert die Publikation, gibt aber keine Internetadresse dafür an.
URI ist somit ein weiter gefasster Begriff als Webadresse. Zu dieser Kategorie von Identifikatoren gehören auch die bekannten Adressen, die mit https: beginnen.
Was bedeutet URL?
URL steht für Uniform Resource Locator, also einen einheitlichen Ressourcenlokalisator. Eine solche Adresse gibt den Ort einer Ressource sowie den Zugriffsmechanismus an, beispielsweise über HTTPS.
Ein Beispiel für eine URL ist https://example.com/ratgeber. Sie enthält die Informationen, die ein Browser benötigt, um einen Zugriff auf die angegebene Seite zu versuchen:
https— das Schema, das hier die Verwendung des Protokolls HTTPS festlegt;example.com— den Hostnamen, hier einen Domainnamen;/ratgeber— den Pfad, der eine Ressource auf diesem Host bezeichnet.
Eine Adresse kann außerdem einen Port, Abfrageparameter und ein Fragment enthalten. Im Beispiel https://example.com/poradnik?jezyk=pl#wprowadzenie ist sprache=pl ein Abfrageparameter, während einleitung ein Fragment des Dokuments identifiziert. Das Fragment wird nicht als Teil der HTTP-Anfrage an den Server gesendet, sondern von der Software auf Nutzerseite ausgewertet.
Eine URL garantiert nicht, dass die Ressource existiert oder erreichbar ist. Die Adresse kann auf eine gelöschte Seite verweisen, eine Anmeldung erfordern oder zu einem Server führen, der nicht antwortet. Sie bleibt dennoch eine URL.
Worin besteht der Unterschied genau?
Am einfachsten lässt sich der Unterschied anhand zweier Fragen merken: Eine URI beantwortet die Frage „Was identifizieren wir?“. Eine URL gibt zusätzlich an: „Wo und auf welche Weise lässt sich darauf zugreifen?“ Die beiden Kategorien schließen sich nicht aus: Eine URL ist ein Sonderfall einer URI.
| Beispiel | Typ | Welche Informationen liefert es? |
|---|---|---|
https://example.com/zdjecie.jpg | URL und URI | Gibt den Ort des Fotos und den Zugriff über HTTPS an. |
urn:isbn:9780131103627 | URI vom Typ URN | Identifiziert die Publikation, gibt aber nicht ihren Ort im Netz an. |
Eine URN, ausgeschrieben Uniform Resource Name, ist ein Identifikator, der auf einem Namen innerhalb eines bestimmten Namensraums basiert. Im zweiten Beispiel ist ISBN dieser Namensraum. Um Webadressen zu verstehen, musst du keine URN verwenden. Sie verdeutlicht aber, warum URI nicht einfach ein anderes Wort für URL ist.
Ein hilfreicher Vergleich ist ein Buch und sein Platz im Regal. Die ISBN identifiziert eine bestimmte Ausgabe. Die Angaben zu Bibliothek, Regal und Regalboden helfen dagegen, sie zu finden. Das ist nur eine Analogie: Eine URL im Internet kann eine Ressource gleichzeitig identifizieren und ihren Ort angeben.
Welchen Begriff solltest du in der Praxis verwenden?
Wenn du nach einer Webadresse, einem Produktlink oder der Adresse einer Datei fragst, verwende den Begriff URL. Er ist in diesem Zusammenhang präzise, ohne dass du die übergeordnete Kategorie der Identifikatoren erklären musst.
In technischen Dokumentationen kann dir die Bezeichnung URI begegnen, obwohl der Beispielwert wie eine gewöhnliche HTTPS-Adresse aussieht. Das muss kein Fehler sein: Der Autor verwendet den weiter gefassten Begriff oder die im jeweiligen Standard festgelegte Bezeichnung. Wenn ein Feld einer API redirect_uri heißt, behalte diesen Namen exakt bei. Ändere ihn nicht in redirect_url, nur weil du eine Webadresse übergibst.
Außerdem solltest du eine vollständige Adresse von ihren Bestandteilen unterscheiden. example.com allein ist ein Domainname. /ratgeber ist dagegen eine relative Referenz, deren Bedeutung von der Basisadresse abhängt. Keine dieser beiden Angaben liefert für sich genommen dieselben Informationen wie die vollständige URL https://example.com/ratgeber.
Warum werden die Begriffe manchmal synonym verwendet?
Die klassische Einteilung von URI als Oberbegriff für URL und URN erklärt den grundlegenden Unterschied gut. Die Terminologie der Standards ist jedoch nicht ganz einheitlich: Der im Browserumfeld verwendete Standard WHATWG URL nutzt den Begriff URL und legt eigene Regeln für die Verarbeitung von Adressen fest.
Beim Programmieren sind deshalb die Anforderungen der jeweiligen Bibliothek oder API wichtiger als die Bezeichnung allein: Nimmt sie eine vollständige Adresse entgegen, unterstützt sie relative Referenzen und welche Schemata lässt sie zu? Wenn du ein Feld „Webadresse“ ausfüllst, gib eine vollständige URL an. Wenn du eine Integration implementierst, prüfe das in ihrer Dokumentation geforderte Format.
Siehe auch: Was ist FreeBSD?
