344 votes

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

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

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

Est-ce correct?

2 votes

Vaut la peine de lire (peut-être après avoir lu la réponse fournie ci-dessous) : w3.org/TR/uri-clarification De plus, les deux liens suivants peuvent aider à clarifier quand quelque chose est une URL VS URN. Schémas d'URI permanents : (URL/URN namespaces je suppose, bien que URN ait son propre entrée dans cette liste qui mène au lien suivant que je fournis ici) iana.org/assignments/uri-schemes.html URN Namespaces: www.iana.org/assignments/urn-namespaces/urn-namespaces.xml

439voto

ayush Points 6352

Un Identifiant de Ressource Uniforme (URI) est une chaîne de caractères utilisée pour identifier un nom ou une ressource sur l'Internet.

Un URI identifie une ressource soit par emplacement, soit par un nom, soit par les deux. Un URI a deux spécialisations connues sous le nom d'URL et URN.

Une Localisation Uniforme de Ressource (URL) est un sous-ensemble de l'Identifiant de Ressource Uniforme (URI) qui spécifie où une ressource identifiée est disponible et le mécanisme pour la récupérer. Une URL définit comment la ressource peut être obtenue. Cela n'a pas besoin d'être une URL HTTP (http://), une URL peut aussi commencer par ftp:// ou smb://, spécifiant le protocole utilisé pour obtenir la ressource.

Un Nom Uniforme de Ressource (URN) est un identifiant de ressource uniforme (URI) utilisant le schéma URN, et n'implique pas la disponibilité de la ressource identifiée. À la fois les URNs (noms) et les URLs (localisateurs) sont des URIs, et un URI particulier peut être à la fois un nom et un localisateur en même temps.

Ce diagramme (source) visualise la relation entre URI, URN et URL:

Diagramme URI, URN, URL

Les URNs font partie d'une architecture d'information Internet plus large qui est composée d'URNs, URCs et URLs.

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 URN vs. URL est "quoi" vs. "où". Un URN doit être de ce format ::= "urn:" ":" où est l'Identifiant de l'espace de noms, et est la chaîne spécifique de l'espace de noms.

En d'autres termes:

  • Une URL est un URI qui identifie une ressource et fournit également les moyens de localiser la ressource en décrivant la manière 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 à faire pour que ce soit 100 % clair serait d'avoir un exemple d'un URI qui n'est pas une URL. Nous pouvons utiliser les exemples dans 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:John.Doe@example.com
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 (disputed, see comments)

93 votes

Peut-être qu'un exemple peut clarifier ceci: le numéro ISBN utilisé pour les livres est en réalité une URN, c'est un identifiant non ambigu pour un livre donné. Mais un numéro ISBN n'est pas une URL car il ne définit pas où le livre peut être trouvé.

29 votes

urn:isbn:0-486-27557-4 (une édition spécifique de la pièce de Shakespeare Roméo et Juliette) est en fait une URN (et donc c'est un URI), mais ce n'est pas une URL.

0 votes

Alors, les URN sont uniques? Et qu'en est-il des URN dans les URI? Un exemple? Merci.

162voto

Gustavo Mori Points 2649

Voici un résumé de l'explication géniale de Prateek Joshi.

La théorie :

  • L'URI (identifiant de ressource uniforme) identifie une ressource (document texte, fichier image, etc.)
  • L'URL (localisateur de ressource uniforme) est un sous-ensemble des URI qui incluent une localisation réseau
  • L'URN (nom de ressource uniforme) est un sous-ensemble des URI qui incluent un nom dans un espace donné, mais sans localisation

C'est-à-dire :

description de l'image ici

Et pour un exemple :

description de l'image ici

Aussi, si ce n'est pas déjà fait, je vous suggère de lire la réponse de Roger Pate.

9 votes

Parce que lorsque l'on utilise des éléments visuels, il est beaucoup plus facile/intuitif de s'y retrouver.

11 votes

Ce qui est marqué comme une URN n'est pas techniquement une, comme indiqué dans la réponse acceptée : "Une URN doit être de cette forme ::= "urn:" ":" où est l'identifiant de l'espace de noms et est la chaîne spécifique à l'espace de noms.". Bien que ce soit en quelque sorte une URN se cachant fonctionnellement sous l'URL.

1 votes

Selon cette réponse, il y a des URI qui ne sont ni une URL ni une URN. Mais cela me semble très étrange...

102voto

URL -- Uniform Resource Locator

Contient des informations sur la manière de récupérer une ressource à partir de son emplacement. Par exemple:

  • http://example.com/mypage.html
  • ftp://example.com/download.zip
  • mailto:user@example.com
  • file:///home/user/file.txt
  • http://example.com/resource?foo=bar#fragment
  • /other/link.html (Un URL relatif, seulement utile dans le contexte d'un autre URL)

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

URN -- Uniform Resource Name

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 globalement unique.
  • urn:publishing:book - Un espace de noms XML qui identifie le document comme un type de livre.

Les URNs peuvent identifier des idées et des concepts. Ils ne se limitent pas à l'identification de documents. 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é depuis l'URL.

URI -- Uniform Resource Identifier

Les URI englobent à la fois les URLs, les URNs et d'autres moyens d'indiquer une ressource.

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

Il existe également des citations uniformes de ressources (URC) qui pointent vers des métadonnées sur un document plutôt que vers le document lui-même. Un exemple d'URC serait un indicateur pour 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 URL ni URN.

Questions fréquemment posées

J'ai entendu dire qu'il ne faut plus dire URL, pourquoi?

La spécification du W3 pour HTML indique que l'attribut href d'une balise d'ancre peut contenir une URI, pas seulement un URL. Vous devriez pouvoir mettre un URN comme . Votre navigateur résoudrait ensuite cet URN en URL et téléchargerait le livre pour vous.

[

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

Pas à ma connaissance, mais les navigateurs web modernes implémentent le schéma URI de données.

Est-ce qu'une URI peut être à la fois un URL et un URN?

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

Est-ce que la différence entre URL et URI a quelque chose à voir avec le fait qu'il soit relatif ou absolu?

Non. Les URL tant relatives qu'absolues sont des URLs (et des URIs).

Est-ce que la différence entre URL et URI a quelque chose à voir avec le fait qu'il y ait des paramètres de requête?

Non. Les URLs tant avec que sans paramètres de requête sont des URLs (et des URIs).

Est-ce que la différence entre URL et URI a quelque chose à voir avec le fait qu'il y ait un identifiant de fragment?

Non. Les URLs tant avec que sans identifiants de fragment sont des URLs (et des URIs).

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

Par exemple tel:1-800-555-5555. Il ne commence pas par urn: et a un protocole pour atteindre une ressource sur un réseau. Il doit s'agir d'un URL.

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

](urn:isbn:0451450523)

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

4 votes

Un tel: est un URI car c'est un identifiant. Lisez le RFC 3966. Ce n'est pas une URL, car cela ne vous aide pas à localiser une ressource sur le web. Il n'y a pas de ressource réelle à laquelle se connecter, donc ce serait impossible. Par exemple, un URI d'ancre href pour tel: lancerait plutôt le programme utilisé pour composer le numéro.

1 votes

@raiks Cette réponse a été soumise bien après les autres réponses. Le système de StackOverflow n'est pas bon pour identifier de bonnes réponses tardives lorsqu'il y a déjà des réponses très appréciées. De plus, cela n'aide pas que cette question soit maintenant fermée. J'ai mis la même réponse sur le doublon : Quelle est la différence entre une URI, une URL et une URN? où elle a reçu plus de votes, mais où les deux meilleures réponses ont toujours 10 fois le score.

1 votes

Votre navigateur convertirait alors cet URN en une URL et téléchargerait le livre pour vous. - Pas nécessairement. Par exemple, si je saisis un URN ISBN, où devrait-il me mener ? Un endroit pour acheter une copie physique ou numérique du livre ? Un endroit pour le télécharger ou le lire en ligne ? L'URN identifie simplement une ressource. Une URL vous permet de spécifier où localiser une ressource. Un URN enregistré sans emplacement utilise le schéma urn tandis que https://www.google.com/ est une URL qui est également un URN (elle identifie et localise la ressource de recherche Web Google).

3voto

gst Points 440

URI (Uniform Resource Identifier) selon Wikipedia:

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

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

URN (Uniform Resource Name) est une forme spécifique d'URI qui a urn comme schéma. Pour plus d'informations sur la forme générale d'un URI, consultez https://fr.wikipedia.org/wiki/Identifiant_de_ressource_uniforme#Syntaxe

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X