File Transfer Protocol: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
cat |
m Caricata immagine in locale |
||
Riga 7:
# salvaguardare l'utente al variare dei sistemi di stoccaggio file, tra un host e l'altro
# trasferire dati in maniera affidabile ed efficiente
L'FTP ha subito una lunga evoluzione negli anni: il primo meccanismo di trasmissione file risale al [[1971]], fu sviluppato presso il [[
=== Il modello ===
[[Immagine:Modello_FTP.png|left|Modello FTP]]
Dove:
* <u>PI</u> (''protocol interpreter'')
* <u>DTP</u> (''data transfer process'')
* <u>Server PI</u> è il PI del server, che ''ascolta'' la porta L in attesa di una connessione dallo User PI e stabilisce la connessione di controllo della comunicazione. Riceve comandi standard FTP dallo User PI, manda risposte e governa il Server DTP.
* <u>Server DTP</u> è il DTP del server, che nello stato normale attivo stabilisce la connessione con la porta in ascolto. Setta i parametri per il trasferimento e lo stoccaggio, e trasferisce i dati a comando. Può essere messo in stato passivo per ascoltare, piuttosto che iniziare una connessione sulla porta dati.
Line 19 ⟶ 21:
L'FTP usa il [[TCP/IP|TCP]] per creare una connessione virtuale per le informazioni di controllo, poi crea una seconda connessione diversa dalla prima e sempre TCP per il trasferimento dei dati. La connessione di controllo usa il [[TELNET]] per scambiare comandi e messaggi tra host.
{| border="1" Cellpadding="2" Cellspacing="0" align="center"
|+ '''Comandi'''
|-
| ''Nome''
| ''Comando''
| ''Parametri''
| ''Descrizione''
|-
| Abort
| <tt>ABOR</tt>
|
| Termina la connessione per il trasferimento dei dati
|-
| Account
| <tt>ACCT</tt>
| <tt><account-information></tt>
| Alcuni server richiedono un account per accessi specifici, ad esempio per memorizzare file
|-
| Allocate
| <tt>ALLO</tt>
| <tt><decimal-integer></tt>
| Alcuni server lo richiedono per riservare spazio sufficiente per contenere i nuovi file da trasferire
|-
| Append (with create)
| <tt>APPE</tt>
| <tt><pathname></tt>
| Obbliga il server ad accettare i dati inviati tramite la connessione dati e salvarli in un file. Se il file esiste già i dati vengono aggiunti, altrimenti il file viene creato ''ex-novo''
|-
| Change to parent directory
| <tt>CDUP</tt>
|
| Cambia la directory di lavoro corrente con quella di livello superiore
|-
| Change working directory
| <tt>CWD</tt>
| <tt><pathname></tt>
| Cambia la directory di lavoro sul server
|-
| Delete
| <tt>DELE</tt>
| <tt><pathname></tt>
| Cancella dal server il file specificato
|-
| Help
| <tt>HELP</tt>
| <tt><string></tt>
| Restituisce informazioni sul comando specificato
|-
| List
| <tt>LIST</tt>
| <tt><pathname></tt>
| Se l'argomento indica un file, elenca le proprietà del file; se l'argomento è una directory, il server trasferisce una lista di file nella directory
|-
| Trasfer mode
| <tt>MODE</tt>
| <tt><mode-code></tt>
| Modalità di trasferimento (<tt>S=stream</tt>, <tt>B=block</tt>, <tt>C=compressed</tt>). Il valore di default è <tt>S</tt>
|-
| Make directory
| <tt>MKD</tt>
| <tt><pathname></tt>
| Crea sul server la directory indicata
|-
| Name list
| <tt>NLST</tt>
| <tt><pathname></tt>
| Elenca il contenuto della directory indicata
|-
| Noop
| <tt>NOOP</tt>
|
| Indica nessuna azione tranne l'invio di un Ok dal server
|-
| Password
| <tt>PASS</tt>
| <tt><password></tt>
| Completa, per alcuni server, l'identificazione dell'utente. Deve essere immediatamente preceduta dal comando <tt>USER</tt>
|-
| Passive
| <tt>PASV</tt>
|
| Mette il server in ascolto su una porta che non è quella predefinita in attesa di una connessione dati
|-
| Data port
| <tt>PORT</tt>
| <tt><host-port></tt>
| Indirizzo internet dell'host e indirizzo TCP della porta, per la connessione dati
|-
| Print working directory
| <tt>PWD</tt>
|
| Nella risposta viene indicato il nome della directory corrente
|-
| Logout
| <tt>QUIT</tt>
|
| Disconnette l'utente e chiude la connessione di controllo. Se i file sono ancora in trasferimento, attende che terminino prima di chiudere le connessioni
|-
| Reinitialize
| <tt>REIN</tt>
|
| Resetta tutti i parametri, termina le connessioni dati ma mantiene quelle di controllo ed aspetta un comando <tt>USER</tt>
|-
| Restart
| <tt>REST</tt>
| <tt><marker></tt>
| Riprende il trasferimento file dall'offset indicato
|-
| Retrieve
| <tt>RETR</tt>
| <tt><pathname></tt>
| Obbliga il server a spedire una copia del file all'utente/server dall'altra parte della connessione
|-
| Remove directory
| <tt>RMD</tt>
| <tt><pathname></tt>
| Rimuove dal server la directory specificata
|-
| Rename from
| <tt>RNFR</tt>
| <tt><pathname></tt>
| Indica il vecchio nome del file da rinominare. Deve essere immediatamente seguito da un <tt>RNTO</tt>
|-
| Rename to
| <tt>RNTO</tt>
| <tt><pathname></tt>
| Indica il nuovo nome del file da rinominare, indicato dal comando <tt>RNFR</tt> immediatamente precedente
|-
| Site parameters
| <tt>SITE</tt>
| <tt><string></tt>
| Comando usato dal server per fornire servizi specifici del suo sistema che sono essenziali per il trasferimento dei file ma non sufficientemente universali per essere inclusi come comandi del protocollo
|-
| Structure mount
| <tt>SMNT</tt>
| <tt><pathname></tt>
| Inserisce la struttura di file specificata
|-
| Status
| <tt>STAT</tt>
| <tt><pathname></tt>
| È una risposta inviata dal server: durante il trasferimento di file contiene lo stato dell'operazione, oppure tra un trasferimento e l'altro e allora ha lo stesso significato del comando <tt>LIST</tt>
|-
| Store
| <tt>STOR</tt>
| <tt><pathname></tt>
| Obbliga il server ad accettare i dati inviati tramite la connessione dati e salvarli
|-
| Store unique
| <tt>STOU</tt>
| <tt><pathname></tt>
| Obbliga il server ad accettare i dati inviati tramite la connessione dati e salvarli con un nome univoco
|-
| File structure
| <tt>STRU</tt>
| <tt><structure-code></tt>
| Codice della struttura dati (<tt>F=file</tt>, <tt>R=record</tt>, <tt>P=page</tt>). Il valore di default è <tt>F</tt>
|-
| System
| <tt>SYST</tt>
|
| Restituisce il sistema operativo in uso sul server
|-
| Representation type
| <tt>TYPE</tt>
| <tt><type-code></tt>
| Tipo di rappresentazione dei dati (<tt>A=ASCII</tt>, <tt>E=EBCDIC</tt>, <tt>I=binary</tt>). Il valore di default è <tt>A</tt>
|-
| User Name
| <tt>USER</tt>
| <tt><username></tt>
| Identificazione dell'utente richiesta dal server per poter accedere al suo file system
|}
|