URI, URL, URN : Comprendre les bases des identifiants sur le web
Lorsque nous développons une application web ou travaillons sur des services en ligne, nous rencontrons souvent des termes tels que URI, URL, ou encore URN. Ces concepts sont essentiels pour comprendre comment les ressources sont identifiées et accessibles sur le web. Cependant, ils peuvent parfois prêter à confusion. Cet article vise à clarifier ces notions et à expliquer leur rôle dans l’écosystème d’internet.
Qu’est-ce qu’un URI ?
Le terme URI signifie Uniform Resource Identifier (Identifiant Uniforme de Ressource). Il s’agit d’une chaîne de caractères qui permet d’identifier une ressource, que ce soit un document, un service ou tout autre élément accessible sur un réseau. Un URI peut être de plusieurs types, dont les plus courants sont URL et URN.
En résumé
URI est un terme générique qui désigne tout identifiant permettant de nommer ou localiser une ressource sur Internet.
Un URI peut être découpé en différentes parties
schema:[//[user:password@]host[:port]][/path][?query][#fragment]
Détails des parties principales
- schéma : indique le protocole à utiliser (ex.
http
,https
,ftp
, etc.).- host : l’adresse du serveur (ex.
www.example.com
).- path : le chemin d’accès à la ressource (ex.
/search
).- query : une série de paramètres optionnels (ex.
q=dev
).- fragment : une référence interne dans la ressource (ex.
#section1
).
https://www.example.com:443/search?q=dev#section1
En savoir plus : Pour une vue plus détaillée des composants URI, vous pouvez consulter la documentation de l’IETF.
Qu’est-ce qu’une URL ?
URL signifie Uniform Resource Locator. C’est probablement le terme le plus familier, puisqu’il correspond aux adresses que nous tapons dans les navigateurs web.
Une URL est un type d’URI qui non seulement identifie une ressource, mais fournit également un moyen pour y accéder, en indiquant un endroit (location) sur le réseau. Elle spécifie le protocole à utiliser (comme https
, ftp
, etc.), ainsi que l’emplacement de la ressource.
https://www.google.com/search?q=URI
Ici, l’URL :
- Identifie la ressource
search
sur le sitegoogle.com
. - Utilise le protocole
https
pour accéder à la ressource.
En résumé :
URL est une sous-catégorie de URI qui inclut des informations sur où et comment accéder à la ressource.
Qu’est-ce qu’un URN ?
URN signifie Uniform Resource Name. Contrairement à une URL, un URN est conçu pour nommer une ressource sans se préoccuper de sa localisation ou de la manière dont on y accède. Un URN n’indique pas comment trouver une ressource, mais il garantit que la ressource nommée aura toujours le même URN, même si elle est déplacée ou si son URL change.
Un exemple d’URN est l’ISBN d’un livre
urn:isbn:978-3-16-148410-0
Cet URN identifie un livre de manière unique. Peu importe où se trouve ce livre (en ligne ou physique), cet identifiant reste valable.
Pour mieux saisir les mécanismes des identifiants, il est pertinent de se pencher plus en profondeur sur les URN. Rapprochez vous de l’article Comprendre les URN : Identifiants Uniformes et leur Rôle dans le Web, pour mieux appréhender leur importance dans la gestion des données. Cela enrichira votre compréhension des standards et de leur application dans nos projets de développement.
En résumé :
URN est une sous-catégorie de URI qui se concentre uniquement sur le nom unique d’une ressource.
Différences entre URI, URL et URN
- URI est le terme générique. Tout URL ou URN est un URI.
- URL est un URI qui contient des informations sur l’emplacement et l’accès à une ressource.
- URN est un URI qui sert uniquement à nommer une ressource de manière unique, indépendamment de sa localisation.
Pour les développeurs, il est important de savoir que lorsque vous manipulez une URL, vous manipulez un type spécifique d’URI. Quant aux URN, ils sont plus rares dans le développement web, mais ils jouent un rôle crucial dans des systèmes comme les bibliothèques numériques.
Autres notions associées
IRI : Internationalized Resource Identifier
Un IRI (Identifiant Internationalisé de Ressource) est une version plus flexible d’un URI, qui permet l’utilisation de caractères non-ASCII (comme les caractères accentués ou non-latins). Les IRI sont particulièrement utiles pour les sites web dans différentes langues.
Par exemple, un IRI pourrait ressembler à ceci dans le contexte d’une application Arduino qui utilise des ressources sur le web
https://fr.example.com/accès-ressource
Dans ce cas, l’IRI permet d’utiliser des caractères non-ASCII, tels que les accents, facilitant ainsi la gestion des ressources dans différentes langues au sein de votre projet. Il est ensuite encodé en un format compatible avec les URI. Pour en savoir plus rapprochez vous de la spécification des IRI dans la RFC 3987.
URIs dans les API REST
Dans les API REST (Representational State Transfer), les URI jouent un rôle central. Les endpoints d’une API sont souvent représentés par des URI qui identifient les ressources manipulées. Par exemple, dans une API qui gère une collection d’utilisateurs, un URI pourrait ressembler à
https://api.example.com/users/123
Ici, l’URI identifie un utilisateur spécifique via son ID (123
).
Les bonnes pratiques de conception d’API REST insistent souvent sur l’importance de créer des URI clairs, lisibles et significatifs, afin de rendre l’API plus intuitive pour les développeurs.
Conclusion
Les notions d’URI, URL et URN sont fondamentales pour comprendre comment les ressources sont identifiées et accessibles sur le web. Bien que l’URL soit la plus utilisée et la plus reconnue, le concept plus large d’URI et la spécificité des URN sont également importants dans divers contextes. Comprendre ces distinctions vous aidera à mieux structurer vos applications web, que ce soit pour gérer des API, des documents ou d’autres ressources sur le réseau.
Si vous souhaitez explorer plus en détail le sujet, consultez la RFC 3986 qui définit la syntaxe uniforme des URI.