NOM
uri, url, urn - Identificateur de ressource uniforme (URI), comprenant URL ou URNSYNOPSIS
URI = [ URI_absolu | URI_relatif ] [ "#" fragment ]
URI_absolu = mécanisme ":" ( partie_hiérarchique | partie_opaque )
URI_relatif = ( chemin_réseau | chemin_absolu | chemin_relatif ) [ "?" requête
mécanisme = "http" | "ftp" | "gopher" | "mailto" | "news" | "telnet" | "file" | "man" | "info" | "whatis" | "ldap" | "wais" | ...
partie_hierarchique = ( chemin_réseau | chemin_absolu ) [ "?" requête ]
chemin_réseau = "//" autorité [ chemin_absolu ]
chemin_absolu = "/" segments_chemin
chemin_relatif = segment_relatif [ chemin_relatif ]
DESCRIPTION
Un Identificateur de Ressource Uniforme (URI) est une courte chaîne de caractères identifiant une ressource physique ou abstraite (par exemple une page web). Une Localisation de Ressource Uniforme (URL) est un URI qui identifie une ressource à travers son moyen d'accès (sa « position » réseau par exemple), plutôt que par son nom ou un autre attribut de la ressource. Un Nom de Ressource Uniforme (URN) est un URI qui doit rester globalement unique, et persister même si la ressource cesse d'exister ou devient indisponible. URIs are the standard way to name hypertext link destinations for tools such as web browsers. The string "http://www.kernel.org" is a URL (and thus it is also a URI). Many people use the term URL loosely as a synonym for URI (though technically URLs are a subset of URIs). Les URI peuvent être absolus ou relatifs. Un identificateur absolu référence une ressource indépendamment du contexte, alors qu'un identificateur relatif référence une ressource en décrivant la différence par rapport au contexte courant. Dans les références de chemins relatifs, les segments complets « . » et « .. » ont des significations particulières : « le niveau actuel dans la hiérarchie » et « le niveau au-dessus dans la hiérarchie », respectivement, tout comme dans les systèmes type UNIX. Un segment de chemin qui contient un caractère deux-points ne peut pas être utilisé comme premier segment du chemin d'un URI (par exemple « ceci:cela »), car on le confondrait avec le mécanisme. Précédez un tel segment avec ./ (par exemple « ./ceci:cela »). Notez que les descendants de MS-DOS (par ex. Windows) remplacent le deux-points du nom de périphérique par une barre verticale dans les URI, ainsi « C: » devient « C| ». A fragment identifier, if included, refers to a particular named portion (fragment) of a resource; text after a '#' identifies the fragment. A URI beginning with '#' refers to that fragment in the current resource.Utilisation
Il y a plusieurs schémas d'URI différents, chacun ajoutant des règles et des significations spécifiques, mais ils sont volontairement rendus le plus ressemblants possible. Par exemple, plusieurs schémas d'URL permettent le format suivant pour décrire l'autorité d'un chemin réseau, que l'on appellera serveur_ip (les crochets encadrent les parties optionnelles) :
serveur_ip
= [ user [ : password ] @ ] hôte [ :
port]
This format allows you to optionally insert a username, a user plus password,
and/or a port number. The host is the name of the host computer, either
its name as determined by DNS or an IP address (numbers separated by periods).
Thus the URI <http://fred:[email protected]:8080/> logs into a
web server on host example.com as fred (using fredpassword) using port 8080.
Avoid including a password in a URI if possible because of the many security
risks of having a password written down. If the URL supplies a username but no
password, and the remote server requests a password, the program interpreting
the URL should request one from the user.
Voici les mécanismes les plus courants utilisés sur les
systèmes type UNIX, compris par de nombreux outils. Notez que beaucoup
d'outils gérant les URI ont aussi des mécanismes internes ou
spécialisés ; consultez la documentation de ces outils
pour plus de détails.
http - Serveur Web (HTTP)
http:// serveur_ip/chemin
- hostport
- le serveur LDAP à interroger, écrit comme un nom d'hôte suivi éventuellement par un deux-points et un numéro de port. Le port TCP pour le LDAP est 389. Si le nom est vide, le client détermine le serveur LDAP à utiliser.
- dn
- Le nom complet (Distinguished Name) LDAP, qui identifie l'objet de base de la recherche LDAP (voir
- attributs
- une liste d'attributs à renvoyer séparés par des virgules ; voir la RFC 2251 section 4.1.5. Par défaut tous les attributs sont renvoyés..
- portée
- indique la portée de la recherche qui peut être « base » (recherche d'objet de base), « one » (recherche sur un niveau), ou « sub » (recherche dans un sous-arbre). Par défaut, on considère « base ».
- filtre
- indique le filtre de recherche (sous-ensemble des entrées à renvoyer). Par défaut, toutes les entrées sont renvoyées. Consultez
- extensions
- a comma-separated list of type=value pairs, where the =value portion may be omitted for options not requiring it. An extension prefixed with a '!' is critical (must be supported to be valid), otherwise it is noncritical (optional).
ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=USPour n'obtenir que l'attribut Adresse Postale, on demanderait :
ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US?postalAddressPour demander à host.com, sur le port 6666 des informations sur la personne de nom courant (cn) « Babs Jensen » à l'University du Michigan, demandez :
ldap://host.com:6666/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen)wais - Wide Area Information Servers wais:// hostport/base
Codage des caractères
Les URI utilisent un nombre limité de caractères afin d'être saisis et utilisés dans de nombreuses situations. Les caractères suivants sont réservés ; ils peuvent apparaître dans un URI, mais leurs usages est limités aux fonctionnalités réservées (les données conflictuelles doivent être protégées avant de former l'URI) :-
; / ? : @ & = + $ ,
-
- _ . ! ~ * ' ( )
- (1)
- translate the character sequences into UTF-8 (IETF RFC 3629)—see utf-8(7)—and then
- (2)
- utiliser le mécanisme d'échappement d'URI, c'est-à-dire, utiliser les %HH pour coder les octets non-sûrs.
Écrire un URI
When written, URIs should be placed inside double quotes (e.g., "http://www.kernel.org"), enclosed in angle brackets (e.g., <http://lwn.net>), or placed on a line by themselves. A warning for those who use double-quotes: never move extraneous punctuation (such as the period ending a sentence or the comma in a list) inside a URI, since this will change the value of the URI. Instead, use angle brackets instead, or switch to a quoting system that never includes extraneous characters inside quotation marks. This latter system, called the 'new' or 'logical' quoting system by "Hart's Rules" and the "Oxford Dictionary for Writers and Editors", is preferred practice in Great Britain and in various European languages. Older documents suggested inserting the prefix "URL:" just before the URI, but this form has never caught on. La syntaxe des URI a été conçue pour éviter les ambiguïtés. Toutefois, comme les URI sont devenus de plus en plus répandus, les médias traditionnels télévision, radio, journaux et magazines...) ont utilisé de manière croissante des abréviations d'URI, consistant en la seule partie autorité et segments de chemin de la ressource (par exemple <www.w3.org/Addressing>). De tels références sont surtout prévues pour une interprétation humaine, avec la supposition que la compréhension du contexte permet de compléter l'URI (par exemple les noms d'hôtes commençant par « www » se préfixent avec « http:// » et les noms commençant par « ftp » doivent se préfixer avec « ftp:// »). De nombreux clients résolvent ces références avec de telles heuristiques. Elle peuvent toutefois évoluer, particulièrement quand de nouveaux mécanismes sont introduits. Comme les URI abrégés ont la même syntaxe qu'un chemin d'URL relative, les références abrégées ne sont pas utilisables lorsque des URI relatifs sont autorisés. N'utilisez pas d'URI abrégés comme liens hypertexte dans un document ; utilisez le format standard décrit ici.STANDARDS
(IETF RFC 2396) (HTML 4.0)NOTES
Un outil acceptant les URI (par exemple un navigateur web) sur un système Linux devrait être capable de traiter (directement ou indirectement) tous les mécanismes décrits ici, y compris man: et info:. Sous-traiter ces éléments à un autre programme est tout à fait acceptable, et même encouragé. Techniquement, la notation d'un fragment ne fait pas partie de l'URI. Pour savoir comment incorporer des URI (y compris des URL) dans un format de données, voir la documentation sur ce format. HTML utilise le format <A HREF=" uri"> text </A>. Les fichiers texinfo utilisent le format @uref{ uri}. Man et mdoc ont une macro UR récemment ajoutée, ou incluent juste l'URI dans le texte (les visualiseurs doivent détecter le :// comme portion d'URI). Les environnements Gnome et Kde divergent actuellement sur les URI qu'ils acceptent, en particulier dans leurs systèmes d'aide. Pour lister les pages de manuel, Gnome utilise <toc:man> alors que Kde utilise <man:(index)>. Pour lister les pages info, Gnome emploie <toc:info> et Kde <info:(dir)> (l'auteur de cette page préfère l'approche Kde, bien qu'un format plus régulier serait encore meilleur). En général, Kde utilise <file:/cgi-bin/> comme préfixe pour les fichiers générés. Kde préfère la documentation en Html, accessible avec <file:/cgi-bin/helpindex>. Gnome préfère le mécanisme ghelp pour stocker et retrouver la documentation. Aucun navigateur ne gère les références file: vers un répertoire à l'heure où j'écris ces lignes, ce qui rend difficile de se référer à un répertoire avec un URI navigable. Comme indiqué plus haut, ces environnements diffèrent sur la gestion du mécanisme info:, probablement leur plus importante divergence. On espère que Gnome et Kde vont converger vers des formats d'URI communs, et la future version de cette page décrira le résultat de cette convergence.Sécurité
Un URI ne pose pas de problème de sécurité par lui-même. Il n'y a aucune garantie qu'une URL, qui localise une ressource à un moment donné continuera de le faire. Pas plus qu'il n'y a de garantie qu'une URL ne localisera pas une ressource différente à un autre moment. Les seules garanties peuvent être fournies par les personnes qui gèrent l'espace de noms de la ressource en question. Il est parfois possible de construire une URL de manière qu'une tentative de réaliser une opération apparemment bénigne, comme accéder à la ressource associée, va en réalité produire une action éventuellement dommageable pour le correspondant. Les URL non sûres sont typiquement construites en indiquant un numéro de port différents de ceux réservés pour les protocoles en question. Le client, croyant contacter un site, va en réalité engager un autre protocole. Le contenu de l'URL contient des instructions, qui interprétées par l'autre protocole, produisent des résultats inattendus. Un exemple a été l'emploi d'une URL Gopher pour envoyer un message falsifié et indésiré sur un serveur SMTP. Il faut être prudent en utilisant une URL qui indique un numéro de port différent de celui du protocole, particulièrement si ce numéro est dans l'espace réservé. Il faut s'assurer que lorsque l'URI contient des délimiteurs protégés pour un protocole donné (par exemple CR et LF pour le protocole telnet) qu'ils ne soient pas « déprotégés » avant la transmission. Ceci peut violer le protocole, mais évite le risque que ces caractères servent à simuler une opération dans ce protocole, ce qui peut conduire à des actions distantes éventuellement nocives. Il est clairement déraisonnable d'utiliser un URI qui contient un mot de passe censé être secret. En particulier, l'utilisation du mot de passe dans la partie « info utilisateur » de l'URI est fortement déconseillé, sauf s'il s'agit d'un de ces cas rares où le mot de passe est vraiment public.BOGUES
La documentation peut se trouver dans un grand nombre d'endroit, ainsi il n'y a pas encore de bon mécanisme d'URI pour la documentation générale en ligne, dans des formats arbitraires. Les référence de la forme <file:///usr/doc/ZZZ> ne fonctionnent pas, car différentes distributions et installations locales peuvent placer les fichiers dans divers répertoires (cela peut être /usr/doc, ou /usr/local/doc, ou /usr/share, ou autre part). De même, le répertoire ZZZ change en principe avec le numéro de version (bien que le développement des noms de fichiers puisse partiellement couvrir ce problème). Finalement, l'utilisation du mécanisme file: n'est pas recommandée pour les gens qui consultent la documentation dynamiquement depuis Internet plutôt que de la télécharger sur leur système de fichiers local. Un mécanisme d'URI sera peut être ajouté dans l'avenir (p.ex. : « userdoc: ») pour permettre aux programme d'inclure des références vers de la documentation plus détaillées sans avoir à connaître l'emplacement exact de celle-ci. Autrement, une version future des spécifications du système de fichiers peut décrire les emplacements de manière suffisamment précise pour que le mécanisme file: soit capable de situer la documentation. De nombreux programmes et formats de fichiers n'incluent aucune manière d'incorporer ou l'implémenter des liens utilisant les URI. Beaucoup de programmes ne traitent pas tous les formats URI différents ; il devrait y avoir un mécanisme standard pour charger un URI quelconque qui détecte automatiquement l'environnement utilisateur (p.ex. : texte ou graphique, environnement de bureau, préférences de l'utilisateur, outils en cours d'exécution) et invoque le bon outil quelque soit l'URI.VOIR AUSSI
lynx(1), man2html(1), mailaddr(7), utf-8(7) IETF RFC 2255TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <[email protected]>, Thierry Vignaud <[email protected]>, François Micaux, Alain Portal <[email protected]>, Jean-Philippe Guérard <[email protected]>, Jean-Luc Coulon (f5ibh) <[email protected]>, Julien Cristau <[email protected]>, Thomas Huriaux <[email protected]>, Nicolas François <[email protected]>, Florentin Duneau <[email protected]>, Simon Paillard <[email protected]>, Denis Barbier <[email protected]>, David Prévot <[email protected]>, Cédric Boutillier <[email protected]> et Frédéric Hantrais <[email protected]> Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à [email protected]5 février 2023 | Pages du manuel de Linux 6.03 |