Un URI, de l'anglais Uniform Resource Identifier, soit littéralement identifiant uniforme de ressource, est une courte chaîne de caractères identifiant une ressource sur un réseau (par exemple une ressource Web) physique ou abstraite, et dont la syntaxe respecte une norme d'Internet mise en place pour le World Wide Web (voir RFC 3986). La norme était précédemment connue sous le terme UDI[1].
L'IETF l'a d'abord défini dans la RFC 2396 en se basant sur des propositions de Tim Berners-Lee (RFC 1630). Mise à jour par la RFC 2732 puis révisée de nombreuses fois sous le titre rfc2396bis, la RFC 3986 définit les URI en .
Le sigle URI est généralement utilisé pour désigner une telle chaîne de caractères. Par exemple urn:ietf:rfc:2396
est un URI identifiant la RFC 2396.
Les URI sont la technologie de base du World Wide Web car tous les hyperliens du Web sont exprimés sous forme d'URI.
Une traduction de rfc3986[2].
Principe
Un URI doit permettre d'identifier une ressource de manière permanente, même si la ressource est déplacée ou supprimée.
Applications
Bien que les URI soient très largement utilisés dans le monde informatique, avec surtout les URL sur Internet, on en retrouve d'autres applications dans le monde réel. Ainsi, le code ISBN, qui est l'identifiant unique d'un livre, permet de retrouver celui-ci depuis n'importe quelle librairie ou bibliothèque, dans le monde entier. On peut considérer également les codes-barres comme une métaphore d'URI dans le monde physique : un code-barres ne localise pas un produit, mais l'identifie (bien qu'il identifie l'ensemble des exemplaires d'un produit, pas chaque exemplaire individuellement, ce qui est le travail du numéro de série, lequel n'est pas systématique, mais réservé aux produits onéreux).
Relation avec les URL et URN
Un URI peut être de type « locator » ou « name » ou les deux.
Un Uniform Resource Locator (URL) est un URI qui, outre le fait qu'il identifie une ressource sur un réseau, fournit les moyens d'agir sur une ressource ou d'obtenir une représentation de la ressource en décrivant son mode d'accès primaire ou « emplacement » réseau. Par exemple, l'URL http://www.wikipedia.org/ est un URI qui identifie une ressource (page d'accueil Wikipédia) et implique qu'une représentation de cette ressource (une page HTML en caractères encodés) peut être obtenue via le protocole HTTP depuis un réseau hôte appelé www.wikipedia.org.
Un Uniform Resource Name (URN) est un URI qui identifie une ressource par son nom dans un espace de noms. Un URN peut être employé pour parler d'une ressource sans que cela préjuge de son emplacement ou de la manière de la référencer. Par exemple, l'URN urn:isbn:0-395-36341-1 est un URI qui, étant un numéro de l'International Standard Book Number (ISBN), permet de faire référence à un livre, mais ne suggère ni où, ni comment en obtenir une copie réelle.
Le point de vue actuel du groupe de travail qui supervise les URI est que les termes URL et URN sont des aspects dépendant du contexte des URI, et que l'on a rarement besoin de faire la distinction entre les deux[3]. Dans les publications techniques, spécialement les normes érigées par l'IETF et le W3C, le terme URL n'a pas été reconnu pendant longtemps, parce qu'il était rarement nécessaire de faire une distinction entre les URL et les URI. Cependant, dans des contextes non techniques et dans les logiciels du World Wide Web, le terme URL reste omniprésent. De plus, le terme adresse web, qui n'a pas de définition formelle, est souvent employé dans des publications non techniques comme synonyme d'URL ou URI, bien qu'il ne se réfère généralement qu'aux protocoles 'HTTP' et 'HTTPS'.
Exemples
Les exemples suivants illustrent les URI d'usage courant :
- ftp://ftp.is.co.za/rfc/rfc1808.txt : protocole FTP pour le service File Transfer Protocol
- gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles : protocole gopher pour les services Gopher et Gopher+
- http://www.math.uio.no/faq/compression-faq/part1.html : protocole HTTP pour le service Hypertext Transfer Protocol
- mailto:mduerst@ifi.unizh.ch : protocole mailto pour les adresses électroniques
- news:comp.infosystems.www.servers.unix : protocole news pour les newsgroups Usenet
- telnet://melvyl.ucop.edu/ : protocole telnet pour les services interactifs via telnet
- irc://irc.freenode.net/ubuntu-fr : protocole IRC pour le service Internet Relay Chat
- ssh://utilisateur@example.com : protocole SSH pour le service Secure shell
- sftp://utilisateur@example.com : protocole SFTP pour le service SSH File Transfer Protocol
- http://example.org/URI/absolu/avec/chemin/absolu/vers/une/ressource
- /URI/relatif/avec/chemin/absolu/vers/une/ressource
- chemin/relatif/vers/une/ressource
- ../../../ressource
- ./ressource#fragment
- ressource
- #fragment
- bitcoin:uneadressebitcoin pour les adresses bitcoin, pour les crypto-monnaies en général
Notes et références
- ↑ (en) Tim Berners-Lee, « What do HTTP URIs Identify? », Réflexion sur les URI significatives, (consulté le )
- ↑ (fr) « "rfc3986" »
- ↑ RFC 3305 et (en) W3C Note: URIs, URLs, and URNs: Clarifications and Recommendations 1.0 (le même contenu, publié par différentes autorités).
Voir aussi
- Schéma d'URI
- URL ~ URN ~ IRI - IRL
- IETF ~ World Wide Web ~ Internet
- Tag URI
- DOI
- Identificateur de fragment
Liens externes
- (en) Web Naming and Adressing Overview (URIs, URLs, …), page principale du W3C sur les adresses Web
- RFC 1630, Universal Resource Identifiers in WWW,
- RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax,
- RFC 3986, Uniform Resource Identifier (URI): Generic Syntax,