Différences entre URI, URL et URN
Les URI, URL et URN permettent d'identifier des ressources sur internet. Mais quelles sont leurs caractéristiques ?
La plupart des gens connaissent le terme « URL », ces adresses nous permettant d’accéder à des sites web. Mais peu de gens savent à quoi correspondent les termes URI et URN.
URI
Qu’est ce qu’une URI ?
Une URI (Uniform Resource Identifier) est une chaîne de caractères qui identifie de manière unique une ressource sur le web.
Les URI peuvent être utilisées pour identifier n’importe quelle ressource via un nom/identifiant, un emplacement ou les deux. Ces ressources peuvent être des :
- Pages web
- Images
- Vidéos
- Documents PDF
- Bases de données
- Fichiers de polices
- Codes source (JS, CSS…)
- Données structurées (JSON, XML…)
- Livres
- Publications périodiques/scientifiques
- Etc.
Deux catégories d’URI
Sur le web, les URI sont classifiées selon 2 catégories :
- Les Uniform Resource Locators (URL)
- Les Uniform Resource Names (URN)
Détaillons leurs caractéristiques respectives.
URL
Qu’est ce qu’une URL ?
Une URL (Uniform Resource Locator) est un type spécifique d’URI qui fournit l’emplacement d’une ressource.
Les ressources présentes sur le web sont désignées par leur URL étant donnée qu’elles sont identifiées par leur localisation (le serveur) et accessibles via un protocole (http
/https
).
Syntaxe et structure
Une URL est constituée de cinq composants :
- Le schéma
- L’autorité
- Le chemin
- La chaîne de requête
- Le fragment
Une URL respecte la syntaxe suivante :
scheme:[//authority]path[?query][#fragment]
Prenons l’exemple d’une URL classique et découpons-la de sorte à distinguer ses composants :
Schéma
Le schéma (ou « scheme ») définit le système d’adressage. Il s’agit généralement d’un protocole utilisé (tel que http
, https
, ftp
…) pour accéder à une ressource.
Ce composant se termine toujours par :
.
http:
https:
ftp:
file:
mailto:
mongodb:
Autorité
L’autorité (ou « authority ») définit l’entité qui a l’autorité sur la ressource identifiée. Plus simplement, elle représente l’emplacement où se situe la ressource.
Sur le web, il s’agit généralement d’un nom de domaine, d’une adresse email ou d’une adresse IP.
L’autorité est constituée de 3 composants :
- (facultatif) Des informations utilisateur (séparées par
:
et suffixé par un@
) - (obligatoire) L’hôte (adresse IP ou nom de domaine)
- (facultatif) Un port, préfixé par
:
Ce composant est toujours précédé par //
.
https://laconsole.dev
http://127.0.0.1:3000
mailto://[email protected]
mongodb://user:[email protected]:3307
Chemin
Le chemin (ou « path ») dans une URL représente l’emplacement de la ressource sur le serveur.
Le chemin peut être absolu ou relatif.
Il est précédé d’un /
et chacune de ses parties est également séparée par des /
.
http://127.0.0.1:3000/contact
https://laconsole.dev/formations/html
file:///C:/Users/toto/Downloads/facture-1.pdf
Chaîne de requête
La chaîne de requête (ou « query string ») est utilisée pour transmettre des données au serveur sous forme de paires clé-valeur.
Elle débute par un ?
et peut contenir plusieurs paires clé-valeur séparées par des &
.
https://laconsole.dev/search?q=securite
https://laconsole.dev/formations/html?page=2&lang=fr
Fragment
Le fragment, aussi appelé « ancre », comprend un identifiant de fragment qui indique la direction à suivre pour accéder à une ressource secondaire.
Il renvoie à une section différente de la ressource principale.
Un fragment est précédé d’un #
.
https://laconsole.dev/formations/html/balises-generiques#div
URN
Qu’est ce qu’une URN ?
Une URN (Uniform Resource Name) est un autre type d’URI qui fournit un nom unique et persistant pour une ressource.
Contrairement aux URL, les URN ne fournissent pas l’emplacement de la ressource. Au lieu de cela, ils fournissent un identifiant unique qui peut être utilisé pour reconnaître une ressource, même si son emplacement change.
Voici quelques exemples d’URN :
- Numéro ISBN d’un livre (exemple :
978-2-7654-0912-0
) - UUID (exemple :
f81d4fae-7dec-11d0-a765-00a0c91e6bf6
) - DOI (exemple :
10.1002/0470841559
) - Spécification RFC (exemple :
2648
)
Syntaxe et structure
Une URN est constituée de trois composants :
- Le schéma
urn
- L’espace de nom
- L’identifiant
Une URN respecte la syntaxe suivante :
urn:[namespace]:[id]
Schéma
Le schéma défini pour un URN est systématiquement urn
.
urn:
Espace de nom
L’espace de nom (ou « namespace ») correspond à un identifiant défini par l’IANA permettant de représenter la typologie de la ressource.
urn:isbn
urn:uuid
urn:doi
urn:ietf-rfc
Identifiant
L’identifiant correspond à la valeur définie pour la ressource dans l’espace de nom auquel il est rattaché.
Cette suite peut également comporter des chiffres, des lettres ou encore des caractères spéciaux.
urn:isbn:978-2-7654-0912-0
urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
urn:doi:10.1002/0470841559
urn:ietf:rfc:2648
Sur le web, les URN les plus répandus sont les UUID, qui permettent, entre autres, d’identifier des ressources telles que des enregistrements en base de données (produits, articles, utilisateurs…).
Différences entre URI, URL et URN : tableau comparatif
Voici un tableau comparatif qui résume les différences entre URI, URL et URN :
URI | URL | URN | |
---|---|---|---|
Signification | Uniform Resource Identifier | Uniform Resource Locator | Uniform Resource Name |
Identifie | Une ressource (localisation et/ou nom) | L’emplacement d’une ressource | Un nom unique et persistant pour une ressource |
Syntaxe | - | scheme:[//authority]path[?query][#fragment] | urn:[namespace]:[id] |
Exemple | - | https://laconsole.dev/search?q=html#results | urn:isbn:978-2-7654-0912-0 |
En résumé, les URI sont des identifiants uniques pour les ressources sur le web, les URL sont un type spécifique d’URI qui fournit l’emplacement d’une ressource sur le web, et les URN sont un autre type d’URI qui fournit un nom unique et persistant pour une ressource.