it-swarm.com.de

Was ist der Unterschied zwischen einer URI, einer URL und einer URN?

Die Leute reden über URL s, URI s und URN s, als ob sie verschiedene Dinge wären, aber sie sehen so aus das gleiche mit dem bloßen Auge.

Was sind die unterscheidbaren Unterschiede zwischen ihnen?

4163
Sean McMains

Von RFC 3986 :

Ein URI kann ferner als Locator, Name oder beides klassifiziert werden. Der Begriff "Uniform Resource Locator" (URL) bezieht sich auf die Untermenge von URIs, die zusätzlich zur Identifizierung einer Ressource ein Mittel zum Lokalisieren der Ressource durch Beschreiben ihres primären Zugriffsmechanismus (z. B. ihres Netzwerk- "Standorts") bereitstellen. Der Begriff "Uniform Resource Name" (URN) wurde in der Vergangenheit verwendet, um sich auf beide URIs im "Urnen" -Schema [RFC2141] zu beziehen, die auch dann global eindeutig und dauerhaft sein müssen, wenn die Ressource nicht mehr verwendet wird zu existieren oder nicht mehr verfügbar zu sein, und zu jeder anderen URI mit den Eigenschaften eines Namens.

Alle URLs sind also URIs (eigentlich nicht ganz - siehe unten), und alle URNs sind URIs - aber URNs und URLs sind unterschiedlich. Sie können also nicht sagen, dass alle URIs URLs sind.

BEARBEITEN: Ich hatte vorher gedacht, dass alle URLs gültige URIs sind, aber laut Kommentaren:

Nicht "alle URLs sind URIs". Dies hängt von der Interpretation des RFC ab. Zum Beispiel in Java mag der URI-Parser [ oder ] nicht und das liegt daran, dass die Spezifikation "sollte nicht" und nicht "soll nicht" sagt.

Damit trübt das Wasser leider weiter.

Wenn Sie Roger Pates Antwort noch nicht gelesen haben, würde ich auch raten, dies zu tun.

1674
Jon Skeet

URI s identifizieren und URL s locate ; Locators sind jedoch auch Bezeichner , sodass jede URL auch eine URI ist. Es gibt jedoch URIs, bei denen es sich nicht um URLs handelt.

Beispiele

  • Roger Pate

Dies ist mein Name, der eine Kennung ist. Es ist wie eine URI, kann aber keine URL sein, da sie nichts über meinen Standort oder die Kontaktaufnahme mit mir aussagt. In diesem Fall ist es auch so, dass allein in den USA mindestens 5 andere Personen identifiziert werden.

  • 4914 West Bay Street, Nassau, Bahamas

Dies ist ein Locator, der eine Kennung für diesen physischen Standort darstellt. Es ist wie eine URL und eine URI (da alle URLs URIs sind) und identifiziert mich indirekt als "Bewohner von ..". In diesem Fall identifiziert es mich eindeutig, aber das würde sich ändern, wenn ich einen Mitbewohner bekomme.

Ich sage "Gefällt mir", weil diese Beispiele nicht der erforderlichen Syntax entsprechen.

Volksverwirrung

Aus Wikipedia :

Beim Computing ist eine URL (Uniform Resource Locator) eine Teilmenge der URI (Uniform Resource Identifier), die angibt, wo eine identifizierte Ressource verfügbar ist und wie sie abgerufen werden kann. In der allgemeinen Verwendung und in vielen technischen Dokumenten und mündlichen Diskussionen wird es häufig fälschlicherweise als Synonym für URI , ... [Hervorhebung meiner] verwendet.

Aufgrund dieser allgemeinen Verwirrung verwenden viele Produkte und Dokumentationen fälschlicherweise einen Begriff anstelle des anderen, weisen ihnen eine eigene Unterscheidung zu oder verwenden sie synonym.

URNs

Mein Name, Roger Pate, könnte wie ein URN (Uniform Resource Name) sein, mit der Ausnahme, dass diese viel regulierter und eindeutig sein sollen sowohl Raum als auch Zeit.

Da ich diesen Namen derzeit mit anderen Personen teile, ist er nicht global eindeutig und als URN nicht geeignet. Auch wenn keine andere Familie diesen Namen verwendet hat, bin ich nach meinem Großvater väterlicherseits benannt, sodass er im Laufe der Zeit immer noch nicht eindeutig ist. Und selbst wenn das nicht der Fall war, macht die Möglichkeit, meine Nachkommen nach mir zu benennen, dies als URN ungeeignet.

URNs unterscheiden sich von URLs in dieser strengen Eindeutigkeitsbeschränkung, obwohl beide die Syntax von URIs teilen.

3755
Roger Pate

URI - Uniform Resource Identifier

URIs sind ein Standard zur Identifizierung von Dokumenten mithilfe einer kurzen Folge von Zahlen, Buchstaben und Symbolen. Sie sind definiert durch RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax . URLs, URNs und URCs sind alle URI-Typen .

URL - Uniform Resource Locator

Enthält Informationen zum Abrufen einer Ressource von ihrem Speicherort. Zum Beispiel:

  • http://example.com/mypage.html
  • ftp://example.com/download.Zip
  • mailto:[email protected]
  • file:///home/user/file.txt
  • tel:1-888-555-5555
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (Eine relative URL, die nur im Kontext einer anderen URL nützlich ist)

URLs beginnen immer mit einem Protokoll (http) und enthalten normalerweise Informationen wie den Netzwerkhostnamen (example.com) und häufig einen Dokumentpfad (/foo/mypage.html). URLs können Abfrageparameter und Fragmentbezeichner enthalten.

URN - Uniform Resource Name

Identifiziert eine Ressource anhand eines eindeutigen und dauerhaften Namens, gibt jedoch nicht unbedingt an, wie Sie sie im Internet finden. Es beginnt normalerweise mit dem Präfix urn: Zum Beispiel:

  • urn:isbn:0451450523, um ein Buch anhand seiner ISBN-Nummer zu identifizieren.
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 ein global eindeutiger Bezeichner
  • urn:publishing:book - Ein XML-Namespace, der das Dokument als eine Art Buch identifiziert.

URNs können Ideen und Konzepte identifizieren. Sie sind nicht auf die Identifizierung von Dokumenten beschränkt. Wenn ein URN ein Dokument darstellt, kann es von einem "Resolver" in eine URL übersetzt werden. Das Dokument kann dann von der URL heruntergeladen werden.

URC - Uniform Resource Citation

Verweist auf Metadaten zu einem Dokument und nicht auf das Dokument selbst. Ein Beispiel für einen URC ist einer, der auf den HTML-Quellcode einer Seite wie folgt verweist: view-source:http://example.com/

Daten-URI

Anstatt es im Internet zu finden oder zu benennen, können Daten direkt in eine URI gestellt werden. Ein Beispiel wäre data:,Hello%20World.


Häufig gestellte Fragen

Ich habe gehört, dass ich keine URL mehr sagen soll, warum?

Die W3-Spezifikation für HTML besagt, dass das href eines Ankertags eine URI und nicht nur eine URL enthalten kann. Sie sollten in der Lage sein, eine URN wie <a href="urn:isbn:0451450523"> einzugeben. Ihr Browser würde dann diese URN in eine URL auflösen und das Buch für Sie herunterladen.

Können Browser tatsächlich Dokumente über URN abrufen?

Nicht das ich wüsste, aber moderne Webbrowser implementieren das Daten-URI-Schema.

Hat der Unterschied zwischen URL und URI irgendetwas damit zu tun, ob es relativ oder absolut ist?

Sowohl relative als auch absolute URLs sind URLs (und URIs).

Hat der Unterschied zwischen URL und URI etwas damit zu tun, ob es Abfrageparameter gibt?

Nein. Beide URLs mit und ohne Abfrageparameter sind URLs (und URIs).

Hat der Unterschied zwischen URL und URI etwas damit zu tun, ob es sich um eine Fragmentkennung handelt?

Nein. Beide URLs mit und ohne Fragment-IDs sind URLs (und URIs).

Hat der Unterschied zwischen URL und URI etwas damit zu tun, welche Zeichen zulässig sind?

Nein. URLs werden als strikte Untermenge von URIs definiert. Wenn ein Parser ein Zeichen in einer URL aber nicht in einem URI zulässt, liegt ein Fehler im Parser vor. Die Spezifikationen gehen sehr detailliert darauf ein, welche Zeichen in welchen Teilen von URLs und URIs zulässig sind. Einige Zeichen sind möglicherweise nur in bestimmten Teilen der URL zulässig, Zeichen allein sind jedoch kein Unterschied zwischen URLs und URIs.

Aber sagt das W3C jetzt nicht, dass URLs und URIs dasselbe sind?

Ja. Das W3C erkannte, dass diesbezüglich eine Menge Verwirrung herrscht. Sie gaben ein URI-Klärungsdokument heraus , das besagt, dass es jetzt in Ordnung ist, die Begriffe URL und URI austauschbar zu verwenden (um URI zu bedeuten). Es ist nicht mehr sinnvoll, URIs streng in verschiedene Typen wie URL, URN und URC zu unterteilen.

Kann ein URI sowohl eine URL als auch eine URN sein?

Die Definition von URN ist jetzt lockerer als das, was ich oben angegeben habe. Der letzte RFC zu URIs besagt, dass jeder URI nun ein URN sein kann (unabhängig davon, ob er mit urn: beginnt), solange er die Eigenschaften eines Namens hat . " Das heißt: Es ist weltweit einzigartig und beständig, auch wenn die Ressource nicht mehr vorhanden oder nicht mehr verfügbar ist. Ein Beispiel: Die in HTML-Doctypes wie http://www.w3.org/TR/html4/strict.dtd verwendeten URIs. Dieser URI würde den HTML4-Übergangsdoctype auch dann weiter benennen, wenn die Seite auf der Website w3.org gelöscht würde.


URI/URL Venn Diagram

601

Zusammenfassend: Ein URI identifiziert, eine URL identifiziert und lokalisiert.

Betrachten Sie eine bestimmte Ausgabe von Shakespeares Stück Romeo und Julia , von der Sie eine digitale Kopie in Ihrem Heimnetzwerk haben.

Sie könnten den Text als urn:isbn:0-486-27557-4 identifizieren.
Das wäre eine URI, genauer gesagt eine URNE *, weil es benennt den Text .

Sie können den Text auch als file://hostname/sharename/RomeoAndJuliet.pdf identifizieren.
Das wäre auch eine URI, genauer gesagt eine URL, weil sie die findet Text .

* Einheitlicher Ressourcenname

(Beachten Sie, dass mein Beispiel aus Wikipedia ) übernommen wurde.

250
Greg

Dies sind einige sehr gut geschriebene, aber langatmige Antworten. Hier ist der Unterschied in Bezug auf CodeIgniter :

URL - http://example.com/some/page.html

URI - /some/page.html

Einfach ausgedrückt, URL ist die vollständige Methode zum Identifizieren einer Ressource an einem beliebigen Ort und kann über verschiedene Protokolle wie FTP, HTTP, SCP usw. verfügen.

URI ist eine Ressource in der aktuellen Domäne, sodass weniger Informationen gefunden werden müssen.

In jedem Fall, in dem CodeIgniter die Word-URL oder den URI verwendet, ist dies der Unterschied, von dem die Rede ist, obwohl er im großen Schema des Webs nicht 100% korrekt ist.

137
Phil Sturgeon

Lassen Sie sich zuerst aus der Verwirrung und nehmen Sie es einfach und Sie werden verstehen.

URI => Uniform Resource Identifier Identifiziert eine vollständige Adresse des Speicherorts, des Namens oder beider Ressourcen.

URL => Uniform Resource Locator Identifiziert den Standort der Ressource.

URN => Uniform Resource Name Gibt den Namen der Ressource an

Beispiel

Wir haben die Adresse https://www.google.com/folder/page.html wo,

URI (Uniform Resource Identifier) ​​=> https://www.google.com/folder/page.html

URL (Uniform Resource Locator) => https://www.google.com/

URN (Uniform Resource Name) => /folder/page.html

URI => (URL + URN) oder nur URL oder nur URN

80
user7987783

Eine kleine Ergänzung zu den bereits geposteten Antworten, hier ist ein Venn-Diagramm, um die Theorie zusammenzufassen (von Prateek Joshi schön Erklärung ):

enter image description here

Und ein Beispiel (auch von Prateeks Website):

enter image description here

66
Gustavo Mori

Dies ist eines der verwirrendsten und möglicherweise irrelevantesten Themen, denen ich als Web-Profi begegnet bin.

So wie ich es verstehe, ist eine URI eine Beschreibung von etwas, die einem akzeptierten Format folgt und entweder beide oder den eindeutigen Namen (die Identifikation) von etwas und seinen Ort definiert.

Es gibt zwei grundlegende Untergruppen: URLs, die den Speicherort definieren (insbesondere für einen Browser, der versucht, eine Webseite aufzurufen), und URNs, die den eindeutigen Namen von etwas definieren.

Ich neige dazu, URNs als ähnlich wie GUIDs zu betrachten. Sie sind einfach eine standardisierte Methode, um eindeutige Namen für Dinge bereitzustellen. Wie in der Namespace-Deklaration, in der der Name eines Unternehmens verwendet wird - es ist nicht so, als ob sich auf einem Server eine Ressource befindet, die dieser Textzeile entspricht -, wird einfach etwas eindeutig identifiziert.

Ich neige auch dazu, den Begriff URI vollständig zu meiden und Dinge nur in Bezug auf URL oder URN zu diskutieren, da dies so viel Verwirrung stiftet. Die Frage, die wir wirklich beantworten sollten, ist nicht so sehr die Semantik, sondern die Art und Weise, wie bei der Ermittlung der Begriffe festgestellt werden kann, ob es einen praktischen Unterschied gibt, der die Herangehensweise an eine Programmiersituation ändert. Wenn mich zum Beispiel jemand im Gespräch korrigiert und sagt: "Oh, das ist keine URL, sondern eine URI." Ich weiß, dass sie voll davon sind. Wenn jemand sagt "Wir verwenden eine URN, um die Ressource zu definieren", ist es wahrscheinlicher, dass wir sie nur eindeutig benennen und nicht auf einem Server lokalisieren.

Wenn ich weit weg von der Basis bin - lass es mich wissen!

53
Kevin Lowe

Kennung = Name + Ort

Jede URL (U niform R esource L ocator) ist eine URI (U niform R esource I dentifier), abstrakt gesprochen, aber nicht jede URI eine URL. Es gibt eine weitere Unterkategorie von URI: URN (U niform R esource N ame), bei der es sich um eine benannte Ressource handelt, bei der jedoch nicht angegeben ist, wie sie gefunden werden sollen, wie mailto, news, ISBN sind URIs. Quelle

enter image description here

URN:

  • URN-Format: urn:[namespace identifier]:[namespace specific string]
  • urne: und: stehen für sich.
  • Beispiele :
    • urn: uuid: 6e8bc430-9c3a-11d9-9669-0800200c9a66
    • urne: ISSN: 0167-6423
    • urne: isbn: 096139210x
    • Amazon Resource Names (ARNs) identifiziert AWS-Ressourcen eindeutig.
      • ARN-Format: arn:partition:service:region:account-id:resource

URL:

  • URL-Format: [scheme]://[Domain][Port]/[path]?[queryString]#[fragmentId]
  • :, // ,? und # stehen für sich.
  • schemata sind https, ftp, Gopher, mailto, Nachrichten, Telnet, Datei, Mann, Info, whatis, ldap ...
  • Beispiele:

Analogie:
So erreichen Sie eine Person: Fahren (Protokollieren anderer SMS, E-Mail, Telefon), Adresse (Hostname, andere Telefonnummer, E-Mail-Adresse) und Personenname (Objektname mit einem relativen Pfad).

45
Premraj

URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URLs sind eine Untermenge von URIs (die auch URNs enthalten).

Grundsätzlich ist ein URI eine allgemeine Kennung, bei der eine URL einen Ort und eine URN einen Namen angibt.

42
Craig Wilson

Ein weiteres Beispiel, das ich gerne verwende, wenn ich über URIs nachdenke, ist das xmlns-Attribut eines XML-Dokuments:

<rootElement xmlns:myPrefix="com.mycompany.mynode">
    <myPrefix:aNode>some text</myPrefix:aNode>
</rootElement>

In diesem Fall wäre com.mycompany.mynode ein URI, der den Namespace "myPrefix" für alle Elemente, die ihn in meinem XML-Dokument verwenden, eindeutig identifiziert. Dies ist KEINE URL, da sie nur zur Identifizierung und nicht zum Auffinden von Objekten an sich verwendet wird.

35
D.C.

Aufgrund von Schwierigkeiten bei der eindeutigen Unterscheidung zwischen URI und URL macht W3C meines Erachtens keinen Unterschied mehr zwischen URI und URL ( http://www.w3.org/Addressing/ ).

28
manuel aldana

Sie sind das gleiche . Ein URI ist eine Verallgemeinerung einer URL. Ursprünglich war geplant, URIs in URLs (Adressen) und URNs (Namen) zu unterteilen, aber dann gab es kaum einen Unterschied zwischen einer URL und URIs, und http-URIs wurden als Namespaces verwendet, obwohl sie tatsächlich keine Ressourcen fanden.

26
Mark Cidade

URI and URL

URI, URL, URN

Wie das Bild oben zeigt, gibt es hier drei verschiedene Komponenten. In der Regel ist es am besten, zur Quelle zu gehen, wenn Sie solche Themen besprechen. Hier ist ein Auszug aus Tim Berners-Lee, et. al. in RFC 3986: Uniform Resource Identifier (URI): Generische Syntax:

Ein Uniform Resource Identifier (URI) ist eine kompakte Folge von Zeichen, die eine abstrakte oder physische Ressource identifiziert.

Ein URI kann ferner als Locator, Name oder beides klassifiziert werden. Der Begriff "Uniform Resource Locator" (URL) bezieht sich auf die Untermenge von URIs, die zusätzlich zur Identifizierung einer Ressource ein Mittel zum Lokalisieren der Ressource durch Beschreiben ihres primären Zugriffsmechanismus (z. B. ihres "Netzwerkstandorts") bereitstellen.

23
Adiii

URI ist eine Art Superklasse von URLs und URNs. Wikipedia hat ein guter Artikel mit Links zu den richtigen RFCs.

20
André

Wikipedia wird alle Informationen geben, die Sie hier benötigen. Zitat aus http://en.wikipedia.org/wiki/URI :

Eine URL ist eine URI, die neben der Identifizierung einer Ressource die Möglichkeit bietet, auf eine Ressource zu reagieren oder eine Darstellung der Ressource zu erhalten, indem ihr primärer Zugriffsmechanismus oder ihr "Netzwerkstandort" beschrieben wird.

16
Peter Boughton

URL

Eine URL ist eine Spezialisierung von URI, die den Netzwerkspeicherort einer bestimmten Ressource definiert. Im Gegensatz zu einer URN definiert die URL, wie die Ressource abgerufen werden kann. Wir verwenden jeden Tag URLs in Form von http://example.com usw. Eine URL muss jedoch keine HTTP-URL sein, sondern kann auch ftp://example.com usw. sein.

URI

Ein URI identifiziert eine Ressource entweder über den Ort oder einen Namen oder beides. Meistens verwenden die meisten von uns URIs, die einen Speicherort für eine Ressource definieren. Die Tatsache, dass ein URI eine Ressource sowohl nach Name als auch nach Ort identifizieren kann, hat meiner Meinung nach zu großer Verwirrung geführt. Ein URI hat zwei Spezialisierungen, die als URL und URN bezeichnet werden.

nterschied zwischen URL und URI

Ein URI ist ein Bezeichner für eine Ressource, aber eine URL gibt Ihnen spezifische Informationen zum Abrufen dieser Ressource. Ein URI ist eine URL, und wie ein Kommentator hervorhob, wird die Verwendung einer URL bei der Beschreibung von Anwendungen jetzt als falsch angesehen. Wenn die URL sowohl den Speicherort als auch den Namen einer Ressource beschreibt, lautet der zu verwendende Begriff im Allgemeinen URI. Da dies in der Regel der Fall ist, dem die meisten von uns täglich begegnen, ist URI der richtige Begriff.

16
Sujit

Gemäß RFC 3986 bestehen URIs aus den folgenden Teilen:

scheme://authority/path?query

Der URI beschreibt das Protokoll für den Zugriff auf einen Ressourcen- Pfad oder Anwendungsabfrage () auf einem Server ( Berechtigung ).

Enter image description here

Alle URLs sind URIs und alle URNs sind URIs, aber alle URIs sind keine URLs.

Bitte beachten Sie für weitere Details:

Wikipedia

15
Prashanth Sams

Ein URI identifiziert eine Ressource entweder über den Ort oder einen Namen oder beides. Meistens verwenden die meisten von uns URIs, die einen Speicherort für eine Ressource definieren. Die Tatsache, dass ein URI eine Ressource sowohl nach Name als auch nach Ort identifizieren kann, hat meiner Meinung nach zu großer Verwirrung geführt. Ein URI hat zwei Spezialisierungen, die als URL und URN bezeichnet werden.

Eine URL ist eine Spezialisierung von URI, die den Netzwerkspeicherort einer bestimmten Ressource definiert. Im Gegensatz zu einer URN definiert die URL, wie die Ressource abgerufen werden kann. Wir verwenden jeden Tag URLs in Form von http://stackoverflow.com usw. Eine URL muss jedoch keine HTTP-URL sein, sondern kann ftp://example.com usw. sein.

13
Swapnil

Obwohl die Begriffe URI und URL streng definiert sind, verwenden viele die Begriffe für andere Dinge als sie definiert sind.

Nehmen wir zum Beispiel Apache. Wenn http://example.com/foo von einem Apache-Server angefordert wird, sind die folgenden Umgebungsvariablen festgelegt:

  • REDIRECT_URL: /foo
  • REQUEST_URI: /foo

Wenn mod_rewrite aktiviert ist, haben Sie auch diese Variablen:

  • REDIRECT_SCRIPT_URL: /foo
  • REDIRECT_SCRIPT_URI: http://example.com/foo
  • SCRIPT_URL: /foo
  • SCRIPT_URI: http://example.com/foo

Dies könnte der Grund für einige Verwirrung sein.

11
Gumbo

Siehe dieses Dokument . Speziell,

eine URL ist ein URI-Typ, der eine Ressource anhand einer Darstellung ihres primären Zugriffsmechanismus (z. B. ihres Netzwerk- "Standorts") und nicht anhand anderer Attribute identifiziert.

Es ist wirklich kein sehr klarer Begriff.

10
avpx

Nach dem Lesen der Beiträge finde ich einige sehr relevante Kommentare. Kurz gesagt, die Verwechslung zwischen den URL- und URI-Definitionen beruht zum Teil darauf, welche Definition von welcher und auch informellen Verwendung der Word-URI in der Softwareentwicklung abhängt.

Per Definition ist URL eine Teilmenge von URI [RFC2396]. URI enthält URN und URL. Sowohl URI als auch URL haben jeweils eine eigene Syntax, die ihnen den Status als URI oder URL verleiht. URN dienen zum eindeutigen Identifizieren einer Ressource, während URL zum Auffinden einer Ressource dienen. Beachten Sie, dass eine Ressource mehr als eine URL haben kann, aber nur eine einzige URN. [RFC2611]

Als Webentwickler und Programmierer beschäftigen wir uns fast immer mit URL und damit URI. Jetzt wird eine URL speziell definiert, die das gesamte Teileschema enthält: schemaspezifisches Teil, wie zum Beispiel https://stackoverflow.com/questions . Dies ist eine URL und auch eine URI. Betrachten Sie nun einen in die Seite eingebetteten relativen Link wie ../index.html. Dies ist per Definition keine URL mehr. Es handelt sich immer noch um eine "URI-Referenz" [RFC2396].

Ich glaube, wenn der Wort-URI verwendet wird, um auf relative Pfade zu verweisen, ist "URI-Referenz" tatsächlich das, woran gedacht wird. Daher verwenden Softwaresysteme informell URI, um auf die relative Pfadangabe und die URL für die absolute Adresse zu verweisen. In diesem Sinne ist ein relativer Pfad keine URL mehr, sondern immer noch eine URI.

10
paul r

Hier ist meine Vereinfachung:

URN: eindeutiger Ressourcenname, d. H. "Was" (z. B. Urne: Issn: 1234-5678). Dies soll eindeutig sein, da in keinem Dokument zwei Dokumente dieselbe Urne haben können. Ein bisschen wie "uuid"

URL: "wo", um es zu finden (z. B. https://google.com/pub?issnid=1234-5678 .. oder ftp://somesite.com/doc8.pdf )

URI: kann entweder eine URN oder eine URL sein. Diese unscharfe Definition ist RFC 3986 zu verdanken, das von W3C und IETF erstellt wurde.

Die Definition von URI hat sich im Laufe der Jahre geändert, daher ist es für die meisten Menschen sinnvoll, verwirrt zu sein. Sie können sich jetzt jedoch damit trösten, dass Sie http://somesite.com/something entweder als URL oder als URI bezeichnen können, und Sie werden in beiden Fällen (zumindest) Recht haben vorerst sowieso ...)

9
jjolla

Ich habe mich über das Gleiche gewundert und Folgendes gefunden: http://docs.kohanaphp.com/helpers/url .

Mit der Methode url::current() können Sie ein klares Beispiel anzeigen. Wenn Sie diese URL: http://example.com/kohana/index.php/welcome/home.html?query=string haben, erhalten Sie mit url:current() die URI was laut Dokumentation ist: welcome/home

9
dierre

URIs entstanden aus der Notwendigkeit, Ressourcen im Web und andere Internetressourcen wie elektronische Postfächer auf einheitliche und kohärente Weise zu identifizieren. Man kann also eine neue Art von Widget einführen: URIs, um Widget zu identifizieren Ressourcen oder verwenden Sie tel: URIs, um Web-Links zu haben, führen beim Aufrufen zu Telefonanrufen.

Einige URIs enthalten Informationen zum Auffinden einer Ressource (z. B. ein DNS-Hostname und ein Pfad auf diesem Computer), während andere als reine Ressourcennamen verwendet werden. Die URL ist für Bezeichner reserviert, die Ressourcen-Locators sind, einschließlich http-URLs wie http://stackoverflow.com , das die Webseite unter dem angegebenen Pfad auf dem Host identifiziert. Ein weiteres Beispiel sind "mailto" -URLs wie mailto: [email protected] , die das Postfach an der angegebenen Adresse identifizieren.

URNs sind URIs, die als reine Ressourcennamen und nicht als Locators verwendet werden. Beispielsweise ist der URI: mid: [email protected] ein URN, der die E-Mail-Nachricht identifiziert, in der er enthalten ist sein 'Message-Id' Feld. Die URI dient dazu, diese Nachricht von jeder anderen E-Mail-Nachricht zu unterscheiden. Die Adresse der Nachricht wird jedoch in keinem Geschäft selbst angegeben.

7
dpant

Um dies zu beantworten, lehne ich mich an eine Antwort, die ich auf eine andere Frage geändert habe . Ein gutes Beispiel für einen URI ist die Identifizierung einer Amazon S3-Ressource. Lass uns nehmen:

s3://www-example-com/index.html  [fig. 1]

die ich als zwischengespeicherte Kopie von erstellt habe

http://www.example.com/index.html  [fig. 2]

im Rechenzentrum von Amazon S3-US-West-2 .

Selbst wenn StackOverflow es mir erlauben würde, einen Hyperlink zu dem s3://protokoll Schema, es würde Ihnen nichts nützen, die Ressource zu lokalisieren . Weil es eine Ressource identifiziert , fig. 1 ist eine gültige URI. Es ist auch eine gültige URN, da Amazon voraussetzt, dass der Bucket (der Begriff für den Teil authority der URI) in allen Rechenzentren eindeutig ist. Es ist hilfreich , um es zu lokalisieren, zeigt jedoch nicht das Datencenter an. Daher funktioniert es nicht als URL.

Wie unterscheiden sich URI, URL und URN in diesem Fall?

HINWEIS: RFC 3986 definiert URIs als scheme://authority/path?query#fragment

6
Bruno Bronosky

Einfach zu erklären:

Nehmen wir folgendes an

URI ist dein Name

URL ist Ihre Adresse mit Ihrem Namen, um mit Ihnen zu kommunizieren.

  • ich heiße loyola

    Loyola ist URI

  • meine Adresse ist TN, Chennai 600001.

TN, Chennai 600 001, Loyola ist URL

Ich hoffe du verstehst,

Nun sehen wir ein genaues Beispiel

http://www.google.com/fistpage.html

oben können Sie mit einer Seite namens firstpage.html (URI) kommunizieren, indem Sie verwenden ) http://www.google.com/fistpage.html (URL).

Daher ist URI eine Teilmenge der URL, aber nicht umgekehrt.

6
loyola

Ein Uniform Resource Identifier (URI) ist eine Zeichenfolge, die eine Internet-Ressource identifiziert.

Die häufigste URI ist die URL (Uniform Resource Locator), die eine Internetdomänenadresse identifiziert. Ein anderer, nicht so gebräuchlicher URI-Typ ist der Universal Resource Name (URN).

4
user2481398

Ich fand:


Ein Uniform Resource Identifier (URI) repräsentiert ein Gesamtbild. Sie können URIs aufteilen/URIs können als Locator (Uniform Resource Locator-URL) oder als Name (Uniform Resource Name-URN) oder als beides klassifiziert werden. Eine URN funktioniert also im Grunde genommen wie der Name einer Person, und die URL zeigt die Adresse dieser Person an. Um es kurz zu machen: Eine URN definiert die Identität eines Elements, während die URL die Methode zum Auffinden des Elements definiert. Diese beiden Konzepte werden schließlich in der URI zusammengefasst

4

Die Antwort ist mehrdeutig. In Java wird es häufig folgendermaßen verwendet:

Ein Uniform Resource Locator (URL) ist der Begriff, der zum Identifizieren einer Internetressource einschließlich des Schemas (http, https, ftp, Nachrichten usw.) verwendet wird. Zum Beispiel Was ist der Unterschied zwischen einer URI, einer URL und einer URN?

Ein Uniform Resource Identifier (URI) wird verwendet, um ein einzelnes Dokument im Webserver zu identifizieren: Zum Beispiel/questions/176264/was-ist-der-Unterschied-zwischen-einem-Uri-und-einer-Url

In Java Servlets verweist der URI häufig auf das Dokument ohne den Webanwendungskontext.

0
Freeman