FTP (File Transfer Protocol) è un protocollo, cioè un linguaggio standard di comunicazione tra due terminali, che permette a dei terminali di tipo differente (o con sistemi operativi diversi) di trasferire dei file su una rete che funziona su TCP/IP.
FTP funziona in un ambiente client/server, cioè il terminale remoto è configurato in server e di conseguenza attende che un terminale gli chieda un servizio. Su UNIX, il servizio è fornito da quello che chiamiamo demoni, un'azione di background. Il demone FTP si chiama ftpd.
I software client sono numerosi, la maggior parte sono in linea di comando (ad esempio il comando ftp, implementato in standard su numerosi sistemi operativi), ma alcuni permettono di manipolare dei file su un'interfaccia grafica (CuteFTP ad esempio), rendendo il trasferimento dei file più conviviale.
Il protocollo FTP permette di scambiare un file per volta, nei due sensi tra il terminale client (quello che ha iniziato la connessione, quindi il terminale chiamante) e il terminale server (quello che ha fornito il servizio FTP, quindi il terminale chiamato). Il protocollo FTP permette inoltre altre azioni come la creazione e l'eliminazione di cartelle (a condizione che siano vuote), l'elenco di file, l'eliminazione e la rinominazione di file, ecc.
Non bisogna confondere le due nozioni di protocollo e di implementazione!
In effetti, un protocollo è un insieme di regole e procedure che sono state definite per standardizzare la comunicazione, mentre l'implementazione è la programmazione di un software secondo (più o meno) le raccomandazioni del protocollo. Quindi, FTP è stato rapidamente implementato (adattato partendo dalle specifiche del protocollo) su numerose piattaforme.
FTP è fornito in standard su diverse piattaforme, fra cui UNIX, Windows9x, WindowsNT, Linus…
Il comando per iniziare una sessione FTP è generalmente il seguente :
ftp nome_del_server
nome_del_server rappresenta ovviamente il nome (o l'indirizzo IP) del terminale remoto al quale si desidera connettersi. Bisogna evidentemente che il terminale scelto sia un server FTP.
All'inizializzazione della connessione, alcune linee di testo appaiono sullo schermo. La prima linea segnala che siete connessi ad un server FTP, le linee seguenti costitiuiscono un messaggio di benvenuto che puo' indicare il tipo di sito FTP di cui si tratta (es. che genere di file ospita o l'ente al quale appartiene), oppure delle raccomandazioni per gli utenti.
Su FTP, ogni linea comincia con un numero che indica un codice relativo ad un fallimento o ad un successo. Nel caso del messaggio di benvenuto, la linea è ad esempio preceduta dal numero 220, che significa che "il servizio è pronto per il nuovo utente"
Il server vi chiederà di digitare il login o ID per definire i privilegi di accesso (come il diritto di scrittura o lettura). Dopo la validazione, una linea che inizia con il numero 331 vi inviterà ad inserire la password che sarà mascherata, cioè non apparirà sullo schermo.
Puo' succedere che il server sia pubblico, nel qual caso il nome utente resta anonimo e dovrete digitare come login: "anonymous". La pratica vuole che si inserisca come password per un sito pubblico il proprio indirizzo di posta elettronica, ma potete scegliere altro.
Una volta validato, un messaggio vi indicherà se la connessione è stata o meno stabilita; nel secondo caso vi saranno date le ragioni del fallimento (il sito puo' ad esempio aver raggiunto il proprio limite in termini di utenti, il messaggio sarà allora "No more user access allowed").
Una volta connesso, il sito FTP aspetta i comandi per le azioni da effettuare.
Dato che i comandi girano solitamente su piattaforme UNIX (dato che si adattano meglio al lavoro in rete), i comandi FTP sono generalmente dei comandi UNIX.
I comandi standard sono i seguenti :