web-dev-qa-db-fra.com

Quelle est la différence entre URI, URL et URN?

Quelle est la différence entre un URI, une URL et un URN? J'ai lu beaucoup de sites (même Wikipedia) mais je ne le comprends pas.

URI: http://www.foo.com/bar.html
URL: http://www.foo.com/bar.html
URN: bar.html

Est-ce correct?

245
thom

Uniform Resource Identifier (URI) est une chaîne de caractères utilisée pour identifier un nom ou une ressource sur Internet.

Un URI identifie une ressource par son emplacement, son nom ou les deux. Un URI a deux spécialisations appelées URL et URN.

Un localisateur de ressources uniformes (URL) est un sous-ensemble de l'identificateur de ressources uniformes (URI) qui spécifie où une ressource identifiée est disponible et le mécanisme permettant de la récupérer. Une URL définit comment la ressource peut être obtenue. Il ne doit pas nécessairement s'agir d'une URL HTTP (http: //), une URL peut également être (ftp: //) ou (smb: //).

Un nom de ressource uniforme (URN) est un identificateur de ressource uniforme (URI) qui utilise le schéma URN et n'implique pas la disponibilité de la ressource identifiée . Les URN (noms) et les URL (localisateurs) sont tous les deux des URI. Un URI particulier peut être à la fois un nom et un localisateur.

Les URN font partie d'une architecture d'information Internet plus large composée d'URN, d'URC et d'URL.

bar.html n'est pas un URN . Un URN est similaire au nom d'une personne, tandis qu'une URL est comme une adresse postale. L'URN définit l'identité de quelque chose, tandis que l'URL fournit un emplacement. Essentiellement, "quoi" et "où". Un URN doit être de cette forme <URN> ::= "urn:" <NID> ":" <NSS><NID> est l'identificateur d'espace de noms et <NSS> est la chaîne spécifique à un espace de noms.

En d'autres termes:

  • Une URL est un URI qui identifie une ressource et fournit également le moyen de localiser la ressource en décrivant le moyen d'y accéder.
  • Une URL est un URI
  • Un URI n'est pas nécessairement une URL

Je dirais que la seule chose qui reste à clarifier à 100% serait d'avoir un exemple d'URI qui n'est pas une URL. Nous pouvons utiliser les exemples de la RFC3986 :

URL: ftp://ftp.is.co.za/rfc/rfc1808.txt
URL: http://www.ietf.org/rfc/rfc2396.txt
URL: ldap://[2001:db8::7]/c=GB?objectClass?one
URL: mailto:[email protected]
URL: news:comp.infosystems.www.servers.unix
URL: telnet://192.0.2.16:80/
URN (not URL): urn:oasis:names:specification:docbook:dtd:xml:4.1.2
URN (not URL): tel:+1-816-555-1212 (?)

Vérifiez également ceci - https://quintupledev.wordpress.com/2016/02/29/difference-between-uri-url-and-urn/

311
ayush

Ci-dessous, je résume l'explication géniale de Prateek Joshi .

La théorie:

  • URI (identifiant de ressource uniforme) identifie une ressource (document texte, fichier image, etc.)
  • URL (uniform resource locator) est un sous-ensemble des URI qui incluent un emplacement de réseau.
  • URN (nom de ressource uniforme) est un sous-ensemble d'URI qui inclut un nom dans un espace donné, mais pas d'emplacement.

C'est:

enter image description here

Et pour exemple:

enter image description here

Aussi, si vous ne l'avez pas déjà fait, je suggère de lire réponse de Roger Pate .

105
Gustavo Mori

URL - niform Resource Locator

Contient des informations sur la manière d'extraire une ressource de son emplacement. Par exemple:

  • http://example.com/mypage.html
  • ftp://example.com/download.Zip
  • mailto:[email protected]
  • file:///home/user/file.txt
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (URL relative, utile uniquement dans le contexte d'une autre URL)

Les URL commencent toujours par un protocole (http) et contiennent généralement des informations telles que le nom d'hôte du réseau (example.com) et souvent un chemin de document (/foo/mypage.html). Les URL peuvent avoir des paramètres de requête et des identificateurs de fragment.

URN - Nom de ressource uniforme

Identifie une ressource par son nom. Il commence toujours par le préfixe urn: Par exemple:

  • urn:isbn:0451450523 pour identifier un livre par son numéro ISBN.
  • urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 un identifiant global unique
  • urn:publishing:book - Espace de noms XML qui identifie le document en tant que type de livre.

Les URN peuvent identifier des idées et des concepts. Ils ne sont pas limités aux documents d'identification. Lorsqu'un URN représente un document, il peut être traduit en URL par un "résolveur". Le document peut ensuite être téléchargé à partir de l'URL.

URI - identifiant de ressource uniforme

Les URI englobent les URL, les URN et d'autres moyens d'indiquer une ressource.

Un exemple d'URI qui n'est ni une URL ni un URN serait un RI de données tel que data:,Hello%20World. Ce n'est pas une URL ou un URN car l'URI contient les données. Il ne le nomme pas et ne vous dit pas non plus comment le localiser sur le réseau.

Il existe également des citations de ressources uniformes (URC) qui renvoient à des métadonnées sur un document plutôt qu'au document lui-même. Un exemple d'URC serait un indicateur permettant d'afficher le code source d'une page Web: view-source:http://example.com/. Un URC est un autre type d'URI qui n'est ni une URL ni un URN.

Questions fréquemment posées

J'ai entendu dire que je ne devrais plus dire d'URL, pourquoi?

La spécification w3 pour HTML indique que le href d'une balise d'ancrage peut contenir un URI, pas seulement une URL. Vous devriez pouvoir insérer un URN tel que <a href="urn:isbn:0451450523">. Votre navigateur résoudra alors cet URN en une URL et téléchargera le livre pour vous.

Est-ce que certains navigateurs savent comment récupérer des documents par URN?

Pas que je sache, mais un navigateur Web moderne implémente le schéma d'URI de données.

Un URI peut-il être à la fois une URL et un URN?

Bonne question. J'ai vu beaucoup d'endroits sur le Web qui disent que c'est vrai. Je n'ai pas été en mesure de trouver d'exemples de quelque chose qui soit à la fois une URL et un URN. Je ne vois pas comment cela est possible car un URN commence par urn: qui n'est pas un protocole réseau valide.

La différence entre URL et URI a-t-elle quelque chose à voir avec le fait qu'elle soit relative ou absolue?

Non. Les URL relatives et absolues sont des URL (et des URI).

La différence entre l'URL et l'URI a-t-elle quelque chose à voir avec le fait qu'elle ait ou non des paramètres de requête?

Non. Les deux URL avec et sans paramètres de requête sont des URL (et des URI).

La différence entre URL et URI a-t-elle quelque chose à voir avec le fait qu'il ait ou non un identifiant de fragment?

Non. Les deux URL avec et sans identificateurs de fragment sont des URL (et des URI).

Est-ce qu'un tel: _ URI est une URL ou un URN?

Par exemple, tel:1-800-555-5555. Il ne commence pas par urn: et il dispose d'un protocole pour accéder à une ressource sur un réseau. Ce doit être une URL.

Mais le W3C ne dit-il pas maintenant que les URL et les URI sont la même chose?

Oui. Le W3C a réalisé qu'il y avait beaucoup de confusion à ce sujet. Ils ont publié un document de clarification d'URI qui indique qu'il est désormais possible d'utiliser indifféremment l'URL et l'URI. Il n'est plus utile de segmenter strictement les URI en différents types tels que URL, URN et URC.

50

URI (Uniform Resource Identifier) ​​selon Wikipedia :

une chaîne de caractères utilisée pour identifier une ressource.

RL (Uniform Resource Locator) est un URI impliquant un mécanisme d'interaction avec une ressource. Par exemple, https://www.google.com spécifie l'utilisation de HTTP comme mécanisme d'interaction. Tous les URI n'ont pas besoin de transmettre des informations spécifiques à une interaction.

RN (Uniform Resource Name) est une forme spécifique d'URI dont le schéma est urn. Pour plus d'informations sur la forme générale d'un URI, consultez https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Syntax

IRI (International Resource Identifier) est une révision de la définition d'URI qui nous permet d'utiliser des caractères internationaux dans les URI.

2
gst