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?
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?
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:
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:
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)
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é.
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.
Voici un résumé de l'explication géniale de Prateek Joshi.
La théorie :
C'est-à-dire :
Et pour un exemple :
Aussi, si ce n'est pas déjà fait, je vous suggère de lire la réponse de Roger Pate.
Parce que lorsque l'on utilise des éléments visuels, il est beaucoup plus facile/intuitif de s'y retrouver.
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.
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...
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.
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.
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.
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.
[
Pas à ma connaissance, mais les navigateurs web modernes implémentent le schéma URI de données.
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.
Non. Les URL tant relatives qu'absolues sont des URLs (et des URIs).
Non. Les URLs tant avec que sans paramètres de requête sont des URLs (et des URIs).
Non. Les URLs tant avec que sans identifiants de fragment sont des URLs (et des URIs).
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.
](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.
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.
@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.
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).
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 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.
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