VII – Transfert de fichiers
Avec l'E-Mail et les News, nous avons parlé des deux services non interactifs les plus usités sur le Réseau. Cependant, il en existe bien d'autres, pour lesquels l'utilisateur est en connexion directe avec une machine distante sur laquelle fonctionne un serveur spécifique. Premier de ces services interactifs, le FTP (pour File Transfer Protocol, protocole de transfert de fichiers) permet d'accéder à des milliers et des milliers de serveurs de par le monde, proposant un nombre incalculable de fichiers en libre service.
o Quelques points techniques pour commencer
Les notions techniques nécessaires à une bonne utilisation du FTP vont être rapidement présentées et sont d'une grande simplicité. Si la connexion à un serveur SMTP ou NNTP ne nécessite a priori aucune identification de la part de l'utilisateur, il n'en est pas de même pour FTP. En effet, pour pouvoir accéder à un serveur FTP, il faut fournir un nom d'utilisateur (ou login) ainsi que son mot de passe (password) correspondant.
Deux cas peuvent alors se présenter :
Dans toute la suite, on ne s'intéressera qu'à des serveurs accessibles en mode anonyme.
Un deuxième point technique à aborder ici concerne les modes de transfert de données reconnus par le protocole FTP. Les deux principaux sont ASCII et binaire. Le mode ASCII n'est à utiliser que pour récupérer des fichiers ne contenant que du texte brut. Par exemple, un fichier Word avec l'extension .doc ne doit surtout pas être récupéré en mode ASCII, sous peine d'être totalement inexploitable une fois obtenu. Le deuxième mode, binaire, convient à tous les autres types de fichiers. C'est généralement le mode de transfert par défaut dans les logiciels FTP (voir ci-dessous) les plus évolués, mais ce n'est pas toujours vrai. Si vous avez des doutes concernant le mode à utiliser, choisissez le binaire : le fichier ainsi obtenu sera dans tous les cas exploitable.
Précisons enfin que la majorité des serveurs FTP accessibles sur Internet ont une adresse DNS qui commence par "ftp".
Exemple : ftp.ibm.com.
Notez que ce n'est absolument pas une obligation, par exemple on peut tout à fait trouver un serveur FTP s'appelant files.toto.com.
Avant de parler des logiciels permettant de faire du FTP, revenons brièvement sur les serveurs anonymes.
o Serveurs anonymes
Sur Internet, quasiment tous les serveurs FTP accessibles au public le sont en mode anonyme. Cela permet de mettre à disposition des internautes une quantité importante de fichiers. Une fois connecté en anonymous, vous n'avez accès qu'à une certaine partie du serveur. En fait, il s'agit d'une partie du disque dur sur lequel fonctionne le serveur. Les fichiers sont proposés sous forme d'arborescence de répertoires. Le répertoire de plus haut niveau (appelée répertoire racine) est désigné par une barre oblique (/ comme sous UNIX…). Ce répertoire contient généralement une demi-douzaine de sous-répertoires, mais un seul présente un intérêt : il s'appelle pub (pour public). C'est dans ce dernier que vous trouverez l'ensemble des fichiers mis à disposition du public. Ce sont la plupart du temps des freewares ou des sharewares (Cf. encadré).
Freeware, Shareware,…
Les fichiers trouvés sur Internet sont généralement de l'un des types suivants :
Il existe également d'autres types de fichiers, comme les cardwares (où l'auteur demande aux utilisateurs de lui envoyer une carte postale si vous utilisez son œuvre), ou encore les beerwares (nous vous laissons deviner ce qu'attend l'auteur…), etc.
En mode anonyme, vous ne pouvez en aucun cas envoyer de fichier au serveur sur lequel vous êtes connecté, bien que le protocole FTP le permette, sauf s'il existe un répertoire nommé incoming ou upload. Ces répertoires sont au même niveau que pub. Ils permettent de proposer des fichiers à l'administrateur du serveur FTP considéré, mais rien ne l'oblige à les incorporer dans l'arborescence contenue dans le répertoire pub. Voyons maintenant avec quels outils il est possible de se connecter à un serveur FTP.
o Clients FTP
On appelle client FTP un logiciel permettant de se connecter à un serveur en utilisant le protocole FTP. On distingue en général deux types de clients FTP : ceux qui disposent d'une interface graphique, permettant ainsi d'accéder aux différents fichiers mis à disposition sur un serveur, aussi simplement qu'avec un gestionnaire de fichiers comme l'explorateur de Windows, et ceux qui nécessitent d'entrer des instructions à la main pour pouvoir changer de répertoire, récupérer un fichier, etc. En pratique, les premiers traduisent les manipulations de l'utilisateur en commandes, telles que celles saisies par l'utilisateur des deuxièmes.
Dans la première catégorie (clients avec interface), on peut citer WS_FTP, CuteFTP sous Windows, mais aussi les navigateurs web de Netscape et Microsoft qui sont capables de se connecter à des serveurs FTP (nous expliquerons comment dans le prochain chapitre). Dans la deuxième catégorie (clients sans interface), le logiciel le plus connu est celui qui porte le nom du protocole, à savoir FTP. Le programme (on parle aussi de commande) FTP existe sous Windows 95 et 98, en standard, ainsi que sous UNIX (d'où il est originaire). Il existe également sous UNIX un autre programme similaire à la commande FTP de référence, mais un peu plus convivial, qui s'appelle ncftp. Tous deux reconnaissent les mêmes commandes de base que nous avons regroupées dans le tableau ci-dessous.
Commande |
Argument(s) |
Signification |
open |
adresse_serveur_FTP |
Ouvre une connexion vers le serveur spécifié |
close |
aucun |
Ferme une connexion ouverte par open |
ascii |
aucun |
Passe en mode ASCII (Cf. plus haut) |
binary |
aucun |
Passe en mode binaire |
cd |
nom_de_répertoire |
Permet de se rendre dans le répertoire indiqué |
dir ou ls |
aucun |
Liste le contenu du répertoire courant |
lcd |
nom_de_répertoire |
Pour changer de répertoire local (destination) |
get |
nom_de_fichier |
Récupère le fichier indiqué en argument. Celui-ci est stocké dans le répertoire local de destination (Cf. lcd) |
mget |
liste_de_fichiers |
Comme get mais permet la récupération de plusieurs fichiers à la fois, dont les noms sont indiqués entre virgules avec éventuellement des caractères génériques (* par exemple) |
put |
nom_de_fichier |
Copie le fichier indiqué du disque local vers le répertoire courant sur le serveur |
help |
aucun |
Affiche la liste des commandes disponibles |
quit |
aucun |
Permet de quitter le logiciel FTP et de fermer la session |
Un exemple, obtenu grâce à la commande FTP de Windows 95, permettra de clarifier les choses. On commence donc par entrer la commande suivante (dans une fenêtre DOS), dans laquelle on spécifie en argument le nom du serveur sur lequel on désire se connecter :
C:\>ftp ftp.jussieu.fr
Le logiciel indique alors que la connexion est établie et affiche un message de bienvenue envoyé par le serveur :
Connected to nephtys.lip6.fr.
220-
220- -- Bienvenue sur le serveur ftp du LIP6 et du CCR Jussieu --
220-Utilisez le compte `anonymous' avec votre adresse e-mail comme mot de passe
220- Merci de signaler les problemes eventuels a ftpmaint@lip6.fr.
220-
220- -- Welcome on the LIP6 and CCR Jussieu ftp server --
220- Please login as `anonymous' with your e-mail address as password
220- Please report problems to ftpmaint@lip6.fr.
220-
220-
220 nephtys.lip6.fr FTP server (Version wu-2.4.2-academ[BETA-17](1) Tue May 19 14:03:52 MET DST 1998) ready.
On indique ensuite le nom d'utilisateur (ici, anonymous), suivi du mot de passe (adresse E-Mail donc).
User (nephtys.lip6.fr:(none)): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password: bob@mycorp.com
Le serveur affiche alors un certain nombre d'informations, comme par exemple la date et l'heure locales, le nombre d'utilisateurs anonymes, etc. Remarquez également la dernière ligne de texte, indiquant que la session en mode anonymous est ouverte.
230- Ce service est assure par le Laboratoire d'Informatique de
230- l'universite Paris 6 (LIP6) et le Centre de Calcul Recherche (CCR)
230- du campus Jussieu.
230-
230- L'heure locale est Sat Aug 29 11:41:31 1998.
230- Il y a 22 utilisateurs connectes dans votre classe.
230- Tous les transferts sont enregistres pour permettre l'exploitation
230-statistique de l'utilisation du serveur.
230-
230- Les fichiers avec l'extension .gz sont compresses avec gzip et non
230-avec compress (voir /pub/gnu/gzip*).
230- Veuillez consulter les fichiers d'information (cd /info).
230-----------
230- This service is provided by the ``Laboratoire d'Informatique de
230-l'universite Paris 6'' (LIP6) and the ``Centre de Calcul Recherche'' (CCR)
230-of the Jussieu campus.
230-
230- The local time is Sat Aug 29 11:41:31 1998.
230- There are 22 connected users in your class.
230- All transfers are logged with your host name and e-mail address
230-to allow us to make statistics on the server use.
230-
230- Files with a .gz extension are compressed with gzip (see /pub/gnu/gzip*)
230- Please take a look at the information files (cd /info).
230-
230 Guest login ok, access restrictions apply.
Tapons la commande dir (équivalente à ls –l). Le contenu du répertoire principal (/ ou root directory) apparaît alors :
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
-r--r--r-- 2 ftp admin 37804748 Aug 29 08:01 FILES.bydate
-r--r--r-- 2 ftp admin 37804748 Aug 29 07:59 FILES.byname
d--x--x--x 3 root root 1024 Dec 21 1996 bin
d--x--x--x 2 root root 1024 Aug 11 14:01 etc
drwxr-xr-x 9 card ibp 1024 May 22 1997 ibp
dr-xr-xr-x 2 root bin 1024 Dec 21 1996 info
drwxr-xr-x 9 jt jussieu 1024 Dec 21 1996 jussieu
drwxr-xr-x 2 root liafa 1024 Jun 30 1997 liafa
drwxr-xr-x 5 card lip6 1024 Jul 7 1997 lip6
-r--r--r-- 2 ftp admin 7181075 Aug 29 07:24 ls-lR.Z
-r--r--r-- 2 ftp admin 5179646 Aug 1 08:02 new-last-month
-r--r--r-- 2 ftp admin 621167 Aug 29 08:01 new-this-week
drwx--x--x 9 card root 1024 Jul 9 18:11 private
drwxr-xr-x 8 card admin 1024 Aug 29 08:16 pub
drwxr-xr-x 6 card admin 1024 Aug 13 11:21 pub2
drwxr-xr-x 5 card admin 1024 Aug 13 11:15 pub3
drwxr-xr-x 11 card admin 1024 Aug 13 11:21 pub4
drwxr-xr-x 4 card root 1024 Aug 13 11:21 pub5
drwxr-xr-x 17 card root 1024 Aug 13 11:21 pub6
drwxr-xr-x 6 card admin 1024 Aug 13 11:21 pub7
drwxr-xr-x 9 card admin 1024 Aug 13 11:21 pub8
drwxr-xr-x 6 card root 1024 Aug 13 11:21 pub9
226 Transfer complete.
1581 bytes received in 0.27 seconds (5.86 Kbytes/sec)
On remarque plusieurs colonnes, dont la dernière à droite indique le nom d'un fichier ou d'un répertoire. La première colonne donne les attributs de chaque fichier ou répertoire. Il n'est nullement nécessaire de comprendre cette notation, spécifique au monde UNIX. La seule chose à noter ici est qu'un répertoire possède la lettre "d" (pour directory) comme attribut en tête de ligne. Par exemple, pub, ainsi que pub2, pub3, etc., sont des répertoires dans l'exemple ci-dessus. Passons sur les colonnes deux à quatre. La cinquième donne la taille de chaque fichier (ignorez la valeur indiquée pour les répertoires). On a ensuite la date de dernière modification de chaque fichier ou dossier, suivie enfin par son nom.
Les deux dernières lignes indiquent que le transfert du listing ainsi obtenu est terminé. La durée et le taux de transfert sont également spécifiés. Rendons-nous dans le répertoire pub, grâce à la commande cd vue dans le tableau ci-dessus, puis affichons son contenu avec dir.
ftp> cd pub
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
lrwxrwxrwx 1 card admin 13 Nov 12 1997 linux -> ../pub2/linux
-r--r--r-- 2 ftp admin 7181075 Aug 29 07:24 ls-lR.Z
lrwxrwxrwx 1 card admin 11 Aug 1 13:40 lyx -> ../pub6/lyx
lrwxrwxrwx 1 card admin 11 Nov 12 1997 mac -> ../pub9/mac
lrwxrwxrwx 1 card admin 12 Nov 12 1997 mach -> ../pub6/mach
lrwxrwxrwx 1 card admin 13 Feb 9 1998 minix -> ../pub4/minix
drwxr-xr-x 20 card admin 1024 Aug 29 09:05 networking
-r--r--r-- 2 ftp admin 5179646 Aug 1 08:02 new-last-month
-r--r--r-- 2 ftp admin 621167 Aug 29 08:01 new-this-week
lrwxrwxrwx 1 card admin 10 Nov 12 1997 pc -> ../pub5/pc
lrwxrwxrwx 1 card admin 11 Jun 8 20:42 pcg -> ../pub4/pcg
lrwxrwxrwx 1 card admin 12 Nov 12 1997 perl -> ../pub7/perl
lrwxrwxrwx 1 card admin 11 Mar 24 17:26 pvs -> ../pub6/pvs
lrwxrwxrwx 1 card admin 14 Aug 11 16:21 python -> ../pub6/python
lrwxrwxrwx 1 card admin 11 Feb 9 1998 rfc -> ../pub4/rfc
drwxr-xr-x 5 card admin 4096 Apr 26 15:12 sgml-tools
lrwxrwxrwx 1 card admin 17 Nov 12 1997 simtelnet -> ../pub4/simtelnet
lrwxrwxrwx 1 card admin 11 Nov 12 1997 tcl -> ../pub8/tcl
lrwxrwxrwx 1 card admin 12 Feb 9 1998 unix -> ../pub4/unix
lrwxrwxrwx 1 card admin 12 Mar 24 17:26 vsta -> ../pub6/vsta
lrwxrwxrwx 1 card admin 11 Nov 12 1997 www -> ../pub7/www
226 Transfer complete.
3861 bytes received in 0.99 seconds (3.90 Kbytes/sec)
On obtient donc le contenu du répertoire /pub. Notez qu'ici, les noms de répertoire (dont le "premier" attribut a pour valeur la lettre "l") sont en fait des liens (indiqués par une flèche ->) vers d'autres répertoires. Cela ne change rien au fait que vous pouvez vous y rendre grâce à la commande cd. Choisissons maintenant de récupérer le fichier new-this-week. Pour ce faire, on passe en mode binaire à l'aide de la commande bin :
ftp> bin
200 Type set to I.
Vérifions le répertoire local courant puis changons-le de façon à ce que le fichier considéré soit stocké dans le répertoire c:\download de notre disque dur :
ftp> lcd
Local directory now C:\
ftp> lcd c:\download
Local directory now C:\Download
Maintenant, il ne nous reste plus qu'à récupérer le dit fichier, grâce à la commande get :
ftp> get new-this-week
200 PORT command successful.
150 Opening BINARY mode data connection for new-this-week (621167 bytes).
226 Transfer complete.
621167 bytes received in 78.71 seconds (7.89 Kbytes/sec)
Au bout d'un peu plus d'une minute, le transfert prend fin. Le fichier se trouve alors sur notre disque dur, dans le répertoire que nous avons indiqué plus haut. Le logiciel a précisé la taille du fichier récupéré, le temps de transfert, ainsi que le débit en Kbytes/sec (Kilo-octets/seconde). Nous pourrions récupérer d'autres fichiers, dans d'autres répertoires, sans aucune limitation. Une fois ceci fait, il ne nous reste plus qu'à fermer la connexion et quitter le logiciel grâce à la commande quit :
ftp> quit
221 Goodbye.
Cet exemple vous a montré comment fonctionne concrètement la commande FTP de Windows 95. Celle-ci est similaire à celle que l'on rencontre sur d'autres machines (notamment sous UNIX), par conséquent vous n'aurez pas de difficulté à vous adapter si vous utilisez un autre système.
Pour terminer ce paragraphe consacré aux clients FTP, prenons un exemple de logiciel disposant d'une interface graphique sous Windows : WS-FTP. La figure ci-dessous présente le contenu du répertoire /pub sur le même serveur que celui que nous venons de consulter avec la commande FTP.
Figure 1 : Le logiciel WS_FTP
On distingue ici deux zones. A gauche, vous avez accès au contenu du votre disque dur "local". A droite, il s'agit du contenu d'un répertoire mis à disposition sur un serveur FTP. Pour changer de répertoire courant, il suffit ici de double-cliquer sur son nom. Son contenu s'affichera alors. Si l'on désire récupérer un fichier, c'est-à-dire le transférer du répertoire (distant) du site FTP vers le répertoire (local) de l'ordinateur de l'utilisateur, il suffit de le sélectionner et de cliquer sur le bouton en forme de flèche pointée vers la gauche. L'opération inverse (ordinateur local vers serveur) pouvant s'effectuer de la même façon, à l'aide de la flèche tournée dans le sens correspondant. On remarque enfin, en dessous des zones d'affichage du contenu des répertoires local et distant, un bouton radio permettant de choisir le mode de transfert, à savoir ASCII ou binaire, comme nous l'avons fait "à la main" dans l'exemple précédent.
Continuons maintenant notre exploration du monde FTP parlant des sites miroirs.
o Sites FTP miroirs
On dit qu'un site FTP est le miroir (mirror en anglais) d'un autre site lorsqu'il propose tout ou partie des fichiers mis à disposition sur autre site, dit principal. Le but des sites miroirs est de permettre à chacun d'accéder à une base de fichiers dans de bonnes conditions, quel que soit son lieu de résidence. De plus, le système de mirroring permet de décharger le site principal, en invitant les personnes intéressées par le serveur en question à se connecter au site miroir le plus près de chez elles. L'utilisateur potentiel a alors plus de chances d'obtenir un débit optimal lors de transferts de fichiers à partir de ce site. Notez enfin que la mise à jour d'un site miroir a généralement lieu durant la nuit.
Refermons ce chapitre en disant quelques mots sur les automates d'accès à des serveurs FTP par E-Mail et sur le service Archie.
o Automates FTPMail
Comment récupérer un fichier proposé sur un serveur FTP lorsque l'on n'a accès qu'à l'E-Mail ? La solution est simple : utiliser un automate appelé FTPMail. Le principe l'est encore plus. Il s'agit d'un automate (i.e. un programme) que l'on pilote en envoyant une série de commandes FTP (parmi celles que nous avons vues plus haut) à l'intérieur d'un message électronique, expédié à une adresse E-Mail qui est associée à l'automate. Ce dernier va exécuter successivement la liste des commandes contenues dans le mail. Chaque fichier demandé via les commandes get ou mget sera renvoyé uuencodé au demandeur.
A noter : ces automates sont très sollicités, il faut parfois attendre une bonne semaine avant d'avoir une réponse.
o Archie
Archie est un service permettant de rechercher des fichiers sur les sites FTP du monde entier. Pour ce faire, on utilise un programme dédié qui va se connecter à un des serveurs archie actuellement en service. Ensuite, on indique toute ou partie du nom du fichier recherché, en utilisant éventuellement des caractères génériques (du type "*"). S'il trouve une ou plusieurs occurrences, il affiche la liste des serveurs FTP sur lesquels le fichier recherché se trouve. Il ne reste plus qu'à utiliser un client FTP pour le récupérer. Notez enfin que certains clients FTP intègrent un support du service archie.
Abordons maintenant le service phare d'Internet : le World Wide Web.