Ajax HTML 5 Création site CMS Comment Design Logiciels Programmation RSS SQL Scriptol Scripts Mobiles
Forum
Scripts
Thumbnail Maker
Bioloide
FTP Synchronizer
Link Checker
Site Update
Lecteur RSS
Techniques Web
Approche Ajax
Essentiel Web design
Bases SEO
JavaScript
Scriptol
Description
Exemples
Applications

Le protocole FTP d'accès au serveur

Ce protocole a été établi dans le but de faciliter l'échange de données entre ordinateurs. FTP permet d'échanger des données entre deux serveurs, ou un serveur et des clients et presque tous les serveurs supportent ce protocole.
Les outils FTP sont le plus souvent utilisés par les webmaster pour transférer des fichiers sur le serveur, et les internautes pour les télécharger. Des commandes de gestion de répertoire permettent la mise à jour d'un site Web.

FTP et HTTP ont un même modèle

HTTP (HyperText Transfer Protocol) est le protocole de transfert de données sur le Web (World Wide Web), tandis que FTP (File Transfer Protocole) est un protocole d'échange de données entre ordinateurs.
HTTP fonctionne aussi sur le mode client serveur, mais le client s'appelle ici agent utilisateur (user agent) et est un navigateur ou autre outil d'accès au Web, comme Webrunner par exemple qui permet de faire apparaître les applications Web sur le bureau de son ordinateur.
Les connexions sont établies en HTTP comme en FTP par une requête de l'agent utilisateur selon le protocole TCP (Transmission Control Protocol).
HTTP utilise des méthodes propres (GET, POST, HEAD) tandis que FTP utilise des commandes, et le premier a ses codes d'erreur propre comme le code 404 (accès impossible) que les internautes connaissent bien!

Description du modèle d'accès au serveur

FTP propose un ensemble des commandes nécessaires pour le transfert et la gestion des fichiers:
- Télécharger, dans un sens ou dans l'autre.
- Afficher le contenu des répertoires.
- Renommer ou supprimer des fichiers, changer les permissions.

FTP est basé sur le protocole TCP/IP qui est aussi celui d'Internet ou celui des intranets.
Le protocole est indépendant sur système d'exploitation du serveur ou du client.
Il y a une connexion pour les commandes et une autre pour les données.
- Les connexions sont établies dans les deux sens, entre deux ordinateurs qui sont tous deux serveurs ou clients. Mais on peut se connecter comme client seul.
- La connexion de données n'est pas permanente. L'envoi de données est simultané dans les deux sens.
Toute opération débute par une connexion du client, votre ordinateur par exemple, sur le serveur, qui vous demande généralement un login ou un mot de passe.
Mais la connexion anonyme est aussi possible. Ce mode est utilisé par exemple par Sourceforge pour l'envoi de fichiers qui sont placés sur une zone de stockage avec d'être vérifiés et intégrés au site.

La connexion peut opérer en mode actif ou passif. Dans le mode actif, c'est le serveur qui ouvre une connexion sur le client pour envoyer des données (même si c'est le client qui passe les commandes), tandis que dans le mode passif, c'est le client qui commande le transfert.
Le mode actif peut se heurter au firewall (pare-feu) qui protège l'ordinateur contre les intrusions externes, à tort dans le cas présent.

FTP peut s'utiliser en PHP

Le langage PHP propose une liste de commandes assez complète pour gérer le contenu d'un site par FTP ce qui a permis de réaliser les logiciels présents sur ce site.
Outre les commandes de connexion et déconnexion, les principales fonctions sont ftp_get pour obtenir un fichier et ftp_put pour l'envoyer. ftp_chdir, ftp_mkdir permettent de changer de répertoire ou en créer un. On peut aussi obtenir la taille d'un fichier.
Certaines fonctions ou paramètres dépendent de la compatibilité avec le serveur et cela rend la réalisation de logiciels universels difficile.

Une démonstration de l'utilisation des fonctions FTP en PHP.
Tandis que la liste des fonctions FTP de PHP se trouve notamment dans l'interface Scriptol.

Modes binaire et ASCII

Comme on le voit lorsqu'on utilise les fonctions PHP, le mode de transfert peut être soit textuel, au format ASCII, ou binaire. Dans le premier cas, les fichiers sont enregistrés au format du système d'exploitation cible. On peut ainsi envoyer de son ordinateur sous Windows un fichier texte, il sera stocké au format Unix si le serveur est sous Unix.
Au contraire en mode binaire les fichiers sont stockés tels quels, ce qui convient pour les images.
Si l'on utilise un logiciel FTP, il ne saura pas adapter le mode de transfert à chaque fichier et utilisera pour tous les fichiers le mode binaire, par conséquent le format des textes ne sera pas converti. C'est crucial pour le fichier .htaccess. Utiliser un éditeur qui permet de choisir le format selon le système d'exploitation.

La sécurité requiert un protocole renforcé

Le mode FTP n'est pas sûr car le mot de passe qui n'est pas codé peut être intercepté par des logiciels espions. D'une manière générale, les transferts ne sont pas crypté et peuvent donc être interceptés.
Pour éviter cet inconvénient, le protocole SFTP (SSH File Transfer Protocol), à été mis au point. Il est différent de FTP et nécessite ses outils propres. L'autre protocole sécurisé est FTPS, (FTP over SSL) qui ajoute un cryptage SSL.

Scripts basés sur FTP

Plusieurs scripts de démonstration, et des scripts plus élaborés sont disponibles sur ce site:

Démonstrations

  • Download. Récupérer un fichier sur le serveur.
  • Upload. Envoyer un fichier sur le serveur.

Logiciels

  • PHP FTP Synchronizer. Mise à jour d'un site Web à partir d'un répertoire local.
  • FTP Check. Teste la connexion avec un serveur.
  • FTP Download. Script complet pour télécharger un fichier.

Plus d'information

  • Le protocole rfc959. Standard de FTP.
  • Comparaison entre FTP et SFTP. Les caractéristiques des deux protocoles ainsi que SCP.
  • Mode actif et mode passif. Comparaison très technique.
  • La liste des commandes FTP. Avec un lien sur les commandes du logiciel ftp de Windows.
© 2007-2011 Scriptol.fr