FTP è l'acronimo di File Transfer Protocol, è lo standard Internet per il trasferimento di file. Viene utilizzato per copiare un file completo tra due sistemi. Per usare il protocollo FTP, il client deve compiere un login sul server, con un username e una password validi, oppure puo' essere configurato il server per accettare login anonimi, usando il nome convenzionale di login "anonymous".

Per scaricare file, soprattutto di grosse dimensioni, l'FTP risulta estremamente più veloce di un normale sito HTTP. A differenza di un sito comune, che può presentare animazioni, immagini, testi, ecc. un sito FTP viene visualizzato dal browser come una cartella contenente dei file, (molto simile a quelle di "Esplora Risorse" in Windows).
Ma il browser è solo uno degli strumenti utilizzati per collegarsi ad un sito ftp. Il contenuto di un sito ftp può essere visualizzato anche utilizzando specifici programmi chiamati "client ftp" o molto più semplicemente il comando "ftp" del prompt MS-DOS di Windows, che richiama il client standard di Windows, presente di default nel sistema operativo.

Principali comandi ftp:

Una volta connessi ad un sito ftp, si opera sull'host remoto. Fra i possibili comandi ce ne sono alcuni molto utili:

dir o ls

Ritorna la lista dei file contenuti nella directory corrente con tutte le informazioni relative. La maggior parte dei siti di archivi contengono un documento "README" (leggimi) che contiene informazioni riguardo al sito, indicazioni varie sulle risorse e come usarle ecc. È buona norma prelevarlo e leggerlo, specie se è la prima volta che ci si collega in quel sito.

Esempio:

ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 42
d--------- 1 owner group 0 Nov 22 11:22 bin
d--------- 1 owner group 0 Nov 22 11:22 incoming
d--------- 1 owner group 0 Nov 22 11:22 pub 226
Transfer complete.
ftp>

Con PORT command successful ftp indica il riconoscimento del comando dir, e con Transfer complete indica il buon fine del comando.

cd [nome directory]

Per cambiare directory.
Nel caso specifico per salire di una directory si usa: cd ..

Esempio:

ftp> cd pub
250 CWD command successful.
ftp>

CWD (Change Working Directory) command successful, significa che il comando di cambio directory ha lavorato in modo corretto.

get [nome file]

Per prelevare un file. Nome file è il nome del file sul sistema remoto.

Esempio:

ftp> get README.TXT
200 PORT command successful.
150 Opening BINARY mode data connection for README (789 bytes).
226 Transfer complete.
931 bytes received in 0.05 seconds (28.29 Kbytes/s)
ftp>

Una copia del file si troverà nella directory corrente del proprio sistema locale, la macchina dalla quale è stata aperta la connessione ftp. Se si desidera cambiare il nome al file, digitando:
get [nome file] [nuovo nome ]
si otterrà una copia del file con un nuovo nome.
Per visualizzare un file remoto direttamente nella sessione di ftp si può usare il comando get con l'opzione -:
get [nome file] -
ftp documenta ogni trasferimento indicando il buon fine dell'operazione e di quanto tempo ha impiegato.

put [nome file]

Per trasferire un file dal proprio sistema locale al sistema remoto (inverso di get), funziona solo se le directory hanno permessi di scrittura. Come il comando get può essere specificato un nome diverso.

mget *.[estensione] | [lettera]* ...

Per prelevare più di un file per volta specificando quelli voluti (es. *.txt tutti i file con estensione .txt) Ad ogni file verrà chiesta conferma.

mput *.[estensione] | [lettera]* ...

Per trasferire più file assieme (inverso di mget).

hash

Stampa '#' ogni buffer trasferito. Risulta essere molto comodo per lunghi trasferimenti per controllarne l'andamento.

Esempio:

ftp> hash
Hash mark printing on (1024 bytes/hash mark). <-- abilitato
ftp> put Ball.gif
200 PORT command successful.
150 Opening BINARY mode data connection for Ball.gif. ###################################################
226 Transfer complete.
74120 bytes sent in 0.23 seconds (309.22 Kbytes/s)
ftp> hash
Hash mark printing off. <-- disabilitato
ftp>

prompt

Serve per disabilitare la richiesta di conferma di ogni singolo file nell'operazione mget o mput. Per ritornare allo stato originario basta ridare il comando.

Esempio:

ftp> prompt
Interactive mode off.
ftp> prompt
Interactive mode on.
ftp>

size [nome file]

Mostra la grandezza di un file.

Esempio:

ftp> size cup.avi
213 288
ftp>

Esistono due differenti modalità di trasferimento: ASCII e binaria.
La prima (ASCII) serve per trasferire solo file di testo, la seconda (binaria) per archivi, file eseguibili, immagini etc...
Questo ha un significato storico abbastanza rilevante: la rete è nata per trasferire soprattutto della posta elettronica, file di testo, ed alcune macchine che funzionano da ponte fra i sistemi buttano l'ottavo bit di ogni byte. Nei file di testo non causa nessun danno perché non contiene niente di significativo, invece nei file binari è praticamente una catastrofe. Scegliendo la modalità binaria, ftp converte automaticamente i file in modo che l'ottavo bit non contenga più niente di importante.
Per cambiare la modalità si usano i comandi:

ascii o type ascii o semplicemente asc

ftp> asc
200 Type set to A.

binary o type binary o bin

ftp> bin
200 Type set to I.
ftp> type ascii
200 Type set to A.

Per ottenere aiuto si può usare il comando: help o ? anche dando il nome di un comando

Esempio:

ftp> help dir
dir                 list contents of remote directory
ftp> help type
type              set file transfer type
ftp>