URI et URL : quelle est la différence ?
Auteur : Rédaction Domeny.ForSale Publié le
En bref : un URI identifie une ressource, tandis qu’une URL indique aussi comment y accéder et où elle se trouve. Dans la classification classique, toute URL est un URI, mais tout URI n’est pas une URL. Vous pouvez donc appeler l’adresse d’une page web aussi bien une URL qu’un URI : dans une conversation courante, le terme « URL » sera généralement plus clair.
Que signifie URI ?
URI signifie Uniform Resource Identifier, soit « identifiant uniforme de ressource ». Une ressource peut être une page web, une photo, un document, un élément accessible par une API, mais aussi un objet qu’on ne peut pas simplement télécharger sur internet.
Le rôle principal d’un URI est d’identifier : il précise de quelle ressource il s’agit. L’identifiant ne doit pas nécessairement indiquer où cette ressource se trouve ni comment y accéder.
Prenons urn:isbn:9780131103627. Cet identifiant de publication utilise un numéro ISBN. Il ne désigne ni une librairie, ni une bibliothèque, ni un fichier à télécharger en particulier. Il identifie la publication sans en donner l’adresse sur internet.
La notion de URI est donc plus large que celle d’adresse web. Cette catégorie d’identifiants comprend aussi les adresses bien connues qui commencent par https:.
Que signifie URL ?
URL signifie Uniform Resource Locator, soit « localisateur uniforme de ressource ». Une URL indique l’emplacement d’une ressource et le mécanisme permettant d’y accéder, par exemple via HTTPS.
https://example.com/guide est un exemple de URL. Cette adresse contient les informations dont le navigateur a besoin pour tenter d’accéder à la page indiquée :
https— le schéma, qui précise ici l’utilisation du protocole HTTPS ;example.com— le nom d’hôte, ici un nom de domaine ;/guide— le chemin désignant la ressource sur cet hôte.
Une adresse peut aussi contenir un port, des paramètres de requête et un fragment. Dans l’exemple https://example.com/poradnik?jezyk=pl#wprowadzenie, la partie langue=pl est un paramètre de requête, tandis que introduction identifie un fragment du document. Ce fragment n’est pas envoyé au serveur dans la requête HTTP : il est interprété par le logiciel du côté de l’utilisateur.
Une URL ne garantit pas que la ressource existe ou soit accessible. L’adresse peut mener à une page supprimée, nécessiter une connexion ou désigner un serveur qui ne répond pas. Elle reste néanmoins une URL.
Quelle est exactement la différence ?
Pour la retenir, posez-vous deux questions : un URI répond à « qu’identifie-t-on ? », tandis qu’une URL permet aussi de préciser « où et comment tenter d’y accéder ? ». Ce ne sont pas deux catégories disjointes : une URL est un cas particulier de URI.
| Exemple | Type | Que nous indique-t-il ? |
|---|---|---|
https://example.com/zdjecie.jpg | URL et URI | L’emplacement de la photo et le moyen d’y accéder via HTTPS. |
urn:isbn:9780131103627 | URI de type URN | Il identifie une publication sans indiquer son emplacement sur le réseau. |
Un URN, ou Uniform Resource Name, est un identifiant fondé sur un nom au sein d’un espace de noms donné. Dans le deuxième exemple, cet espace de noms est ISBN. Il n’est pas nécessaire d’utiliser les URN pour comprendre les adresses web, mais ils permettent de voir pourquoi URI n’est pas simplement un synonyme de URL.
On peut comparer un livre et sa place sur une étagère. Le numéro ISBN permet d’identifier une édition précise, tandis que les indications sur la bibliothèque, le rayonnage et l’étagère aident à la retrouver. Ce n’est qu’une analogie : une URL sur internet peut à la fois identifier une ressource et indiquer son emplacement.
Quel terme utiliser en pratique ?
Si vous demandez l’adresse d’une page, un lien vers un produit ou l’adresse d’un fichier, utilisez le mot URL. Il est précis dans ce contexte et ne nécessite pas d’expliquer la catégorie plus large des identifiants.
Dans la documentation technique, vous pouvez rencontrer le terme URI même lorsque la valeur donnée en exemple ressemble à une adresse HTTPS ordinaire. Ce n’est pas forcément une erreur : l’auteur emploie la notion plus large ou le terme retenu par une norme donnée. Si un champ d’une API s’appelle redirect_uri, conservez exactement ce nom : ne le remplacez pas par redirect_url sous prétexte que vous transmettez l’adresse d’une page.
Il faut aussi distinguer une adresse complète de ses éléments. Pris isolément, example.com est un nom de domaine, tandis que /guide est une référence relative dont le sens dépend de l’adresse de base. Aucune de ces deux notations ne fournit à elle seule les mêmes informations que la URL complète https://example.com/guide.
Pourquoi ces termes sont-ils parfois employés indifféremment ?
La classification classique des URI, qui comprend les URL et les URN, explique bien la différence fondamentale. La terminologie des normes n’est toutefois pas entièrement uniforme : le standard WHATWG URL, utilisé dans les navigateurs, emploie la notion de URL et définit ses propres règles de traitement des adresses.
En programmation, les exigences de la bibliothèque ou de l’API concernée comptent donc davantage que le terme lui-même : accepte-t-elle une adresse complète, prend-elle en charge les références relatives et quels schémas autorise-t-elle ? Lorsque vous remplissez un champ « adresse du site », indiquez une URL complète ; lorsque vous développez une intégration, vérifiez le format exigé dans sa documentation.
À lire aussi : Qu’est-ce que FreeBSD ?
