URLs et protocoles

Ce document décrit sommairement les principales URLs (Uniform Resource Locators) et les protocoles qui leur sont associés.

Table des matières


Que sont les URLs?

Une URL (Uniform Resource Locator) est un standard développé afin de localiser précisément une ressource électronique et son mode d'accès. Les URLs sont définies par le Request For Comments RFC 1738.

Les URLs permettent l'accès à un large éventail d'informations accessibles via différents protocoles Internet. L'utilisation la plus courante des URLs consiste à utiliser la barre d'adresse d'un navigateur World Wide Web (WWW). Les URLs généralement utilisées dans un navigateur Web commencent par "http:". Néanmoins, toutes sortes de fichiers et programmes tels que le File Transfert protocol (FTP) ou le service Gopher peuvent être référencés par des URLs. La connexion à distance via le protocole Unix Telnet ou l'accès au courrier électronique peuvent également se faire via l'utilisation d'URLs.

Une URL est donc, à la fois, l'adresse Internet d'un document et le mode de consultation du dit document, la connaissance de ces URLs est indispensable à une bonne maîtrise d'Internet.

Syntaxe générale d'une URL

Le format général de toute URL est le suivant :

<protocole>:<information-accessible-depuis-le-protocole>

Le protocole pouvant être "http", "gopher", "ftp", "news" et bien d'autres(cf. ci-dessous). Le protocole décrit le type de ressource à atteindre et/ou le mécanisme à utiliser pour l'obtention de la ressource.

La partie information-accessible-depuis-le-protocole dependent est détaillée ci-dessous pour chaque protocole mais contient dans la plupart des cas deux types d'information :

  1. le nom de la machine mettant à disposition le fichier;
  2. le nom complet du fichier incluant le chemin.

Les URLs de type FTP, HTTP ou Gopher apparaissent généralement de la manière suivante :

protocole://machine.domaine/chemin-complet-du-fichier

Exemple : http://www.upf.pf/~capolsin/cours_html/url.html

Cette URL utilise donc le protocole "http" (HyperText Transfer Protocol), pour accéder au fichier ~capolsin/cours_html/url.html situé sur la machine www.upf.pf.

Notons que pour les URLs de type FTP, HTTP ou Gopher, le nom de fichier peut se terminer par un / indiquant qu'il s'agit non d'un fichier mais d'un répertoire. Dans ce cas, le serveur retourne "l'index par défaut" du répertoire. Cet "index par défaut" pouvant être soit une liste des fichiers et répertoires situés à cet adresse soit un fichier par défaut recherché par le serveur (pour le protocole "http" : "index.html", "index.htm", "default.html", "default.htm", ...)

Utilisation des URLs

Pour les URLs les plus courantes, un simple click ou doube-click sur l'URL lance, si votre machine est bien configurée, le client approprié à l'accès de l'URL considérée, d'autres clients, comme les navigateurs Web, permettent la saisie ou le "copier-coller" d'une URL dans une zone précise enfin, un décodage "manuel" de l'URL et le lancement du client concerné est toujours possible.

Construction et présentation d'URLs

Construire une URL est chose relativement aisée, il suffit de se référer aux exemples ci-dessous. La présentation d'une URL peut se faire de deux manière différentes :

  1. sur une ligne séparée du texte :
  2. ftp://ftp.mcom.com/netscape/mac/netscape.sea.hqx

  3. en utilisant la syntaxe recommandée dans le RFC 1738, et en distinguant les URLs des URIs Uniform Resource Identifiers. La syntaxe est alors la suivante :
  4. <URL:ftp://ftp.mcom.com/netscape/mac/netscape.sea.hqx>

Le consortium W3 publie également d'autres recommandations.

Notons également que certains caractères sont réservés ou incertains et doivent être encodés à l'aide de "séquences d'échappement" dont la liste est donnée dans l'Appendice A: Séquences d'échappement.

Les principaux protocoles

Les protocoles les plus utilisés sont sans aucun doute HTTP, FTP, Gopher, News et Mailto, néanmoins, dans un soucis d'exhaustivité, nous listons également d'autres protocoles moins répandus bien qu'utiles ou historiques.

HyperText Transfer Protocol (HTTP)

HTTP est le protocole du World Wide Web et est donc le protocole le plus utilisé et de loin ! Sa syntaxe est la suivante :

http://<machine>:<port>/<chemin>?<chemin-de-recherche>

machine est le nom ou l'adresse IP du serveur WWW, port est le numéro de port à utiliser pour la connexion. Dans la plupart des cas le numéro de port peut être omis, le port 80 est alors utilisé par défaut.

Le chemin indique au serveur WWW le chemin et le nom de fichier à accéder. En cas d'omission, la page par défaut du serveur est accédée. Le chemin-de-recherche peut être utilisé afin de fournir de l'information au serveur, en général les paramètres d'un script CGI ou d'un formulaire.

Le caractère # peut également être rencontré afin de spécifié un signet particulier d'une page html. L'URL ci-dessous saute directement au signet "http" de la page html référencée :

http://www.upf.pf/~capolsin/cours_html/url.html#http

File Transfer Protocol (FTP)

FTP est un protocole très utilisé permettant le transfert bi-directionnel de fichiers sur Internet mais aussi sur un réseau local. UN transfert de fichier peut se faire également via le protocole HTTP mais cela ne se fait pas aussi souplement qu'en utilisant des clients FTP spécifiques. La syntaxe est la suivante :

ftp://<login>:<password>@<machine>:<port>/<cwd1>/<cwd2>/.../<cwdN>/<nom>

La partie login et password peut être omise si l'on contacte une machine n'ayant aucune restriction sur les utilisateurs autorisés à accéder aux ressources (anonymous est alors utilisé).  machine ets le nom ou l'adresse IP du site à contacter. Le paramètre port peut être omis (port 21 utilisé par défaut). La partie "<cwd1>/<cwd2>/.../<cwdN>/<nom>" représente le chemin complet du fichier à récupérer. Cette dernière partoe peut également être omise, la connexion s'établit alors à la racine de l'arborescence du serveur FTP.

Gopher Protocol (Gopher)

La syntaxe des URLs Gopher est très proche de celle des URLs FTP ou HTTP:

gopher://<machine>:<port>/<gopher-chemin>

Le port est, ici encore, optionnel. Le gopher-chemin indique le type de ressource gopher ainsi que d'autres informations intéressantes pour la recherche.

Courrier électronique (Mailto)

La syntaxe est la suivante :

mailto:<compte@site>

compte@site est l'adresse électronique du correspondant telle que définie dans RFC 822. Notons que quelques vieux navigateurs Web ne reconnaisse pas l'URL "mailto".

Usenet News (News)

Les URLs de News permettent le référencement d'un groupe de discussion (newsgroup) ou bien d'un unique article, les deux syntaxes autorisées sont donc :

news:<nom-du-newsgroup>
news:<identifiant-de-message>

La partie nom-du-newsgroup peut-être n'importe quel nom valide de groupe de discussion (par exemple comp.infosystems.www.providers ou fr.www.*) et indique au navigateur qu'il doit transférer la totalité des titres d'articles disponibles dans le groupe indiqué. L'identifiant-de-message se trouve dans l'entête de tout message.

Les URLs news ne contiennent aucune indication de serveur de news. Il est donc indispensable d'avoir un client proprement configuré pour l'accès à un serveur NNTP.

Usenet News via le protocole NNTP (NNTP)

Cette URL est très proche de la précédente mais indique le nom d'un serveur NNTP spécifique.

nntp://<machine>:<port>/<nom-du-newsgroup>/<identifiant-de-message>

Ceci sous-entend que le serveur NNTP ne possède aucune restriction sur les machines autorisées à accéder à ses ressources, ce qui n'est pas toujours le cas ...

Telnet distant (Telnet)

Cette URL permet la connexion distante à un serveur (souvent un serveur Unix).La syntaxe est la suivante :

telnet://<login>:<password>@<machine>:<port>/

La partie <login>:<password> peut être omise, ces informations seront demandées par la <machine> dès l'établissement de la connexion. Le port utilisé par défaut est le port 23, port standard du telnet.

Telnet distant en émulation 3270 (TN3270)

Cette URL est utilisée pour la connexion à un gros système (généralement IBM) nécessitant une émulation de type TN3270. Cette URL n'est pas décrite dans la RFC 1738 mais est une extension proposée.

tn3270://<login>:<password>@<machine>:<port>/

Wide Area Information Search (WAIS)

L'URL wais permet l'accès aux bases de données ou aux documents indexées selon la méthode WAIS. trois syntaxes sont possibles :

wais://<machine>:>port>/<database>
wais://<machine>:<port>/<database>?<recherche>
wais://<machine>:<port>/<database>/<wtype>/<wpath>

La première syntaxe indique l'accès à une base WAIS, la seconde une recherche sur une base WAIS et la troisième référence un document précis.

Fichiers (File)

L'URL "file" permet de référencer un fichier situé sur une machine précise. Il existe souvent une confusion entre cette URL et les URLs de type "ftp". FTP spécifie une méthode précise de récupération d'un fichier alors que l'URL "file" laisse tout le contrôle de la méthode au client utilisé. La syntaxe est la suivante :

file://<machine>/<chemin>

machine peut être omis, la machine locale est alors utilisée.

Appendix A : Séquences d'échapement

Certains caractères sont considérés comme "réservés" ou "non fiables" et doivent donc être remplacés par une séquence d'échappement. Ces séquences ont la forme "%+US-ASCII-valeur-hexadecimal". Les caractères dits "non fiables" sont les suivants :

     SPACE      %20
     <          %3C
     >          %3E
     #          %23
     %          %25
     {          %7B
     }          %7D
     |          %7C
     \          %5C
     ^          %5E
     ~          %7E
     [          %5B
     ]          %5D
     `          %60

Les Reserved Les caractères réservés sont utilisé dans les URLs et doivent donc être encodés si l'on souhaite les faire apparaître comme de vrais caractères. Leur liste est la suivante :

     ;          %3B
     /          %2F
     ?          %3F
     :          %3A
     @          %40
     =          %3D
     &          %26

Appendix B: les RFCs de référence

Uniform Resource Locators (RFC 1738)
<URL:http://www.cis.ohio-state.edu/htbin/rfc/rfc1738.html>
Universal Resource Identifiers (RFC 1630)
<URL:http://www.cis.ohio-state.edu/htbin/rfc/rfc1630.html>
HyperText Transfer Protocol
<URL:http://www.w3.org/hypertext/WWW/Protocols/Overview.html>
File Transfer Protocol (RFC 959)
<URL:http://www.cis.ohio-state.edu/htbin/rfc/rfc959.html>
Gopher Protocol (RFC 1436)
<URL:http://www.cis.ohio-state.edu/htbin/rfc/rfc1436.html>
Internet Text Messages (RFC 822)
<URL:http://www.cis.ohio-state.edu/htbin/rfc/rfc822.html>
File Transfer Protocol (RFC 959)
<URL:http://www.cis.ohio-state.edu/htbin/rfc/rfc959.html>
Usenet Messages (RFC 1036)
<URL:http://www.cis.ohio-state.edu/htbin/rfc/rfc1036.html>
Network News Transfer Protocol (RFC 977)
<URL:http://www.cis.ohio-state.edu/htbin/rfc/rfc977.html>
WAIS over Z39.50-1988 (RFC 1625)
<URL:http://www.cis.ohio-state.edu/htbin/rfc/rfc1625.html>