La plupart des gens con­nais­sent le concept d’URL. Les adresses URL nous per­met­tent d’accéder à des sites Web sur Internet. Mais qu’est-ce qu’un URI ? Le concept d‘URI provient de Tim Berners-Lee, le principal inventeur du World Wide Web. Lorsqu’il a employé ce terme pour la première fois dans la RFC 2396, il parlait encore d’un « Universal Resource Iden­ti­fier » (Iden­ti­fiant de Ressource Universel). Entre temps, et notamment grâce à l’ap­pa­ri­tion du World Wide Web Con­sor­tium (W3C), la notion de « URI » s’est établie en tant qu‘acronyme de Uniform Resource Iden­ti­fier, et est comprise en tant que telle jusqu’à aujourd’hui. Toutefois, le concept est resté le même depuis.

Qu’est-ce que le « Uniform Resource Iden­ti­fier » ?

Le « Uniform Resource Iden­ti­fier » (URI) permet d’iden­ti­fier les res­sources abs­traites ou physiques sur internet. Le type de ressource que l’URI re­pré­sente peut varier en fonction de la situation. Les URI peuvent par exemple iden­ti­fier des sites Web, tout comme ils peuvent iden­ti­fier des ex­pé­di­teurs ou des des­ti­na­taires de courriels. Les ap­pli­ca­tions utilisent un iden­ti­fiant unique pour pouvoir interagir avec une ressource ou pour consulter les données d’une ressource.

C’est sur cette base que fonc­tion­nent les pro­to­coles comme HTTP ou FTP, puisque la forme de l’adresse est définie par une syntaxe commune employée pour tous les URI. À partir d’un URI, un système peut lire l’in­for­ma­tion, connaître son em­pla­ce­ment et savoir par quel moyen elle est ac­ces­sible.

La syntaxe dans les URI

Les URI peuvent contenir jusqu’à cinq parties, parmi les­quelles seules deux sont obli­ga­toires :

  • Scheme (le schéma) : indique le protocole utilisé.
  • Authority (l’autorité) : identifie le domaine.
  • Path (le chemin) : indique le chemin d’accès à la ressource.
  • Query (la requête) : re­pré­sente une action de requête.
  • Fragment (le fragment) : désigne un aspect partiel d’une ressource.

Seuls le schéma et le chemin doivent né­ces­sai­re­ment ap­pa­raître dans chaque iden­ti­fiant. Dans la syntaxe commune aux URI, toutes les parties ap­pa­rais­sent les unes derrière les autres et sont séparées par des signes bien précis.

scheme :// authority path ? query # fragment

La double barre oblique après le premier double point n’est né­ces­saire que lorsque la partie authority renferme des in­for­ma­tions. La partie authority peut toujours contenir des in­for­ma­tions sur l'uti­li­sa­teur, qui sont ensuite séparées du domaine par le symbole @. Cette partie peut également inclure une spé­ci­fi­ca­tion du port à la fin, elle-même séparée du domaine par un double point.

Prenons l’exemple d’une adresse Web classique : "https://example.org/test/test1?search=test-question#part2"

  • Scheme : https
  • Authority : example.org
  • Path : test/test1
  • Query : search=test-question
  • Fragment : part2

Dans cet exemple, l’URI fait référence à une partie d’un site Web. Cette partie (la partie 2) est ac­ces­sible via HTTP et se trouve sur un appareil portant l’iden­ti­fiant example.org. Elle est ac­ces­sible via le chemin indiqué, en ef­fec­tuant une recherche préalable. Le « Uniform Resource Iden­ti­fier » peut tout aussi bien iden­ti­fier une adresse email : "mailto:user@example.org".

  • Scheme : mailto
  • Path : user@example.org

Dans le cas présent, seules les deux parties obli­ga­toires ap­pa­rais­sent dans l’URI. Les données ou encore les numéros de té­lé­phones sont d’autres exemples de res­sources qui peuvent être iden­ti­fiées selon cette syntaxe.

Note

Bien que le chemin (path) constitue une donnée obli­ga­toire dans chaque URI, le contenu de chaque partie peut toutefois rester vide. Ainsi l’adresse « http://example.org/ » est bien un URI valide même si le path est vide.

Les schémas d’URI, c’est-à-dire les premières parties de chaque URI, sont attribués par l’IANA. Bien qu’on puisse utiliser ses propres schémas confirmés par l’or­ga­ni­sa­tion, ceux-ci sont cependant connus de l’ensemble du réseau internet. Les schémas les plus connus sont les suivants :

  • About : in­for­ma­tions de na­vi­ga­tion
  • Data : inclusion de données
  • Feed : flux RSS
  • File : fichiers
  • ftp : File Transfer Protocol
  • git: gestion de versions avec Git
  • http : Hypertext Transfer Protocol
  • https : Hypertext Transfer Protocol Secure
  • imap : Internet Message Access Protocol
  • mailto : adresses email
  • news : Usenet News­groups
  • pop : POP3
  • rsync : Syn­chro­ni­sa­tion des fichiers
  • sftp : SSH File Transfer Protocol
  • ssh : Secure Shell
  • tel : Numéros de téléphone
  • urn : Uniform Resource Names
Conseil

L’IANA met à dis­po­si­tion une liste of­fi­cielle de tous les schémas URI connus.

Le ré­fé­ren­ce­ment des URI

Pour éviter de devoir toujours rédiger (et en­re­gis­trer) la spé­ci­fi­ca­tion complète d’un URI, certaines ap­pli­ca­tions utilisent une version plus courte de la syntaxe. Pour que la forme rac­cour­cie soit cor­rec­te­ment comprise, l’adresse URI de base doit toujours être en­tiè­re­ment formulée. Le ré­fé­ren­ce­ment URI est alors résolu en interne. C’est pourquoi on distingue le ré­fé­ren­ce­ment absolu du ré­fé­ren­ce­ment relatif. L’URI absolu fonc­tionne in­dé­pen­dam­ment du contexte et se compose au moins du schéma (scheme), de l’autorité (authority) et du chemin (path). Le ré­fé­ren­ce­ment relatif cor­res­pond à la forme courte de la syntaxe : cette forme ne précise que sa dif­fé­rence par rapport à l’URI de base. Un URI relatif doit donc se situer dans le même espace de noms que l’URI de base.

Le ré­fé­ren­ce­ment relatif ne spécifie aucun schéma (scheme). Pour qu’on puisse dif­fé­ren­cier les URI relatifs des URI absolus, le double point dans le premier segment du chemin ne doit pas être indiqué, sinon la partie avant le double point pourrait être in­ter­pré­tée comme un schéma (scheme). On distingue trois types de ré­fé­ren­ce­ments relatifs que l’on peut re­con­naître grâce à des marqueurs distincts au début du chemin (path) :

  • Une référence relative commence sans barre oblique.
  • Une référence absolue commence par une barre oblique.
  • Une référence de réseau commence par une double barre oblique.

URI vs URL vs URN

La si­mi­la­rité des abré­via­tions URI, URL et URN est bien souvent source de confusion. Cette confusion peut également s’expliquer par le fait que les trois termes sont étroi­te­ment liés d’un point de vue technique. Un Uniform Resource Locator permet d’iden­ti­fier l’em­pla­ce­ment d’une ressource. L’URL est donc aussi utilisée sur internet, pour pouvoir naviguer sur certains sites bien précis. En revanche, le Uniform Resource Name est en­tiè­re­ment in­dé­pen­dant de l’em­pla­ce­ment de la ressource : il permet plutôt d’iden­ti­fier une ressource de manière per­ma­nente. Si les URL sont prin­ci­pa­le­ment connues sous formes d’adresses web, elles peuvent aussi se présenter sous la forme d’un ISBN pour iden­ti­fier un livre de manière per­ma­nente.

Les URL et les URN res­pec­tent la syntaxe commune aux URI. Les deux dé­sig­na­tions sont donc des sous-ensembles d’URI. C’est pourquoi les URL et les URN sont toujours des URI. In­ver­se­ment, les URI ne sont pas né­ces­sai­re­ment des URL ou des URN.

Aller au menu principal