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 :

  1. Vous disposez d'un compte (couple nom d'utilisateur , mot de passe) sur la machine sur laquelle vous souhaitez accéder via FTP.
  2. Vous ne disposez pas de compte. Dans ce cas, vous pouvez vous connecter au serveur dans un mode dit anonyme (anonymous en anglais). Pour ce faire, il suffit d'indiquer "anonymous" comme nom d'utilisateur et de donner votre adresse E-Mail comme mot de passe. Ce n'est pas une obligation, mais c'est souvent exigé par le serveur (dans le but d'effectuer des statistiques de connexion).

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.