File Transfer Protocol: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m aggiunta una intro
fix
 
(307 versioni intermedie di oltre 100 utenti non mostrate)
Riga 1:
Il '''File Transfer Protocol''' ('''FTP''') è un [[protocollo di comunicazione]] usato per il [[trasferimento di file]] da un server a un client su una [[rete informatica]]. Il protocollo FTP è basato su un'[[Sistema client/server|architettura di tipo client-server]], tenendo separati il controllo e le connessioni di dati tra il client e il server.<ref name="for">{{Cita libro|cognome=Forouzan|nome=B.A.|anno=2000|titolo=TCP/IP: Protocol Suite|edizione=1st|città=New Delhi, India|editore=Tata McGraw-Hill Publishing Company Limited}}</ref> Gli utenti di un FTP possono autenticarsi con un protocollo di registrazione in testo semplice, tipicamente sotto forma di nome utente e password, ma possono connettersi in maniera anonima se il server è configurato appositamente. Dal momento che FTP trasmette le credenziali in chiaro, e inoltre che non dispone di meccanismi di autenticazione del server presso il client, FTP è spesso reso sicuro con un sostrato [[Transport Layer Security|SSL/TLS]], definendo una variante del protocollo chiamata [[FTPS]]. Un altro simile protocollo sicuro è il cosiddetto [[SSH File Transfer Protocol]] (SFTP) che a dispetto del nome è un protocollo tecnologicamente diverso.
L''''FTP''', acronimo di '''F'''ile '''T'''ransfer '''P'''rotocol (''protocollo di trasferimento file''),
è un servizio che fornisce gli elementi fondamentali per la condivisione di file tra host.
 
Le prime applicazioni di FTP furono [[Interfaccia a riga di comando|programmi a riga di comando]] sviluppati prima dell'avvento dell'[[interfaccia grafica]], e sono ancora distribuite con la maggior parte dei sistemi operativi [[Windows]], [[Unix]] e [[Linux]].<ref name="tcpip">{{cita web|cognome=Kozierok |nome=Charles M. |anno=2005 |titolo=The TCP/IP Guide v3.0 |url=http://www.tcpipguide.com/free/t_FTPOverviewHistoryandStandards.htm |editore=Tcpipguide.com}}</ref><ref>{{Cita libro|autore=Tamara Dean|titolo=Network+ Guide to Networks|anno=2010|editore=Delmar|pp=168-171}}</ref> Un client FTP è stato integrato nei [[browser]], dove si potevano navigare i server FTP col prefisso <code>ftp://</code>. Tuttavia, nel 2021, il supporto a FTP fu dismesso da Google Chrome e Firefox,<ref name=":0">{{Cita web|cognome=Vonau|nome=Manuel|data=7 luglio 2021|titolo=Firefox follows in Chrome's footsteps and drops FTP support (APK Download)|url=https://www.androidpolice.com/2021/07/14/firefox-90-fully-removes-ftp-support-and-reorganizes-some-settings-apk-download/|accesso=12 luglio 2021|sito=Android Police|lingua=en}}</ref><ref name="chromestatus">{{Cita web|titolo=Remove FTP support - Chrome Platform Status|url=https://chromestatus.com/feature/6246151319715840|accesso=2 settembre 2021}}</ref> in quanto è ormai superato dalle alternative più sicure SFTP e FTPS, nonostante nessun navigatore abbia implementato questi protocolli.<ref>{{Cita web|cognome=by |nome=Written |data=23 marzo 2020 |titolo=Firefox is dropping FTP support |url=https://news.sophos.com/en-us/2020/03/23/firefox-is-dropping-ftp-support/ |accesso=13 ottobre 2023 |sito=Sophos News |lingua=en}}</ref><ref>{{Cita web|cognome=Edwards |nome=Benj |data=14 luglio 2022 |titolo=Chrome and Firefox Killed FTP Support: Here's an Easy Alternative |url=https://www.howtogeek.com/744569/chrome-and-firefox-killed-ftp-support-heres-an-easy-alternative/ |accesso=13 ottobre 2023 |sito=How-To Geek |lingua=en}}</ref>
Gli obbiettivi dell'FTP sono:
== Storia ==
# promuovere la condivisione di file (programmi piuttosto che dati)
FTP è uno dei primi protocolli definiti della [[Internet|Rete Internet]] e ha subito una lunga evoluzione negli anni. La prima specifica, sviluppata presso il [[Massachusetts Institute of Technology|MIT]], risale al [[1971]]<ref>{{IETF|114|A FILE TRANSFER PROTOCOL}}</ref>. L'attuale specifica fa riferimento all'[[Request for Comments|RFC]] 959<ref name="rfc959">{{IETF|959|FILE TRANSFER PROTOCOL (FTP)}}</ref>.
# incoraggiare l'uso indiretto o implicito (tramite programma) di computer remoti
# 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 [[M.I.T.]].<br>
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.
 
Gli obiettivi principali di FTP descritti nella sua RFC ufficiale furono:
<table border="1" Cellpadding="2" Cellspacing="0" align="center">
* Promuovere la condivisione di [[file]] (programmi o dati)
<caption> '''Comandi''' </caption>
* Incoraggiare l'uso indiretto o implicito di [[computer]] remoti.
<tr><td>''Nome''</td><td>''Comando''</td><td>''Parametri''</td><td>''Descrizione''</td></tr>
* Risolvere in maniera trasparente incompatibilità tra differenti sistemi di stoccaggio file tra [[host]].
<tr><td>Abort</td><td><tt>ABOR</tt></td><td>&nbsp;</td><td>Termina la connessione per il trasferimento dei dati</td></tr>
* Trasferire dati in maniera affidabile ed efficiente.
<tr><td>Account</td><td><tt>ACCT</tt></td><td><tt><account-information></tt></td><td>Alcuni server richiedono un account per accessi specifici, ad esempio per memorizzare file</td></tr>
<tr><td>Allocate</td><td><tt>ALLO</tt></td><td><tt><decimal-integer></tt></td><td>Alcuni server lo richiedono per riservare spazio sufficiente per contenere i nuovi file da trasferire</td></tr>
<tr><td>Append (with create)</td><td><tt>APPE</tt></td><td><tt><pathname></tt></td><td>Obbliga il server ad accettare i dati inviati tramite la connessione dati e salvarli in un file. Se il file esiste gi&agrave; i dati vengono aggiunti, altrimenti il file viene creato ''ex-novo''</td></tr>
<tr><td>Change to parent directory</td><td><tt>CDUP</tt></td><td>&nbsp;</td><td>Cambia la directory di lavoro corrente con quella di livello superiore</td></tr>
<tr><td>Change working directory</td><td><tt>CWD</tt></td><td><tt><pathname></tt></td><td>Cambia la directory di lavoro sul server</td></tr>
<tr><td>Delete</td><td><tt>DELE</tt></td><td><tt><pathname></tt></td><td>Cancella dal server il file specificato</td></tr>
<tr><td>Help</td><td><tt>HELP</tt></td><td><tt><string></tt></td><td>Restituisce informazioni sul comando specificato</td></tr>
<tr><td>List</td><td><tt>LIST</tt></td><td><tt><pathname></tt></td><td>Se l'argomento indica un file, elenca le propriet&agrave; del file; se l'argomento &egrave; una directory, il server trasferisce una lista di file nella directory</td></tr>
<tr><td>Trasfer mode</td><td><tt>MODE</tt></td><td><tt><mode-code></tt></td><td>Modalit&agrave; di trasferimento (<tt>S=stream</tt>, <tt>B=block</tt>, <tt>C=compressed</tt>). Il valore di default &egrave; <tt>S</tt></td></tr>
<tr><td>Make directory</td><td><tt>MKD</tt></td><td><tt><pathname></tt></td><td>Crea sul server la directory indicata</td></tr>
<tr><td>Name list</td><td><tt>NLST</tt></td><td><tt><pathname></tt></td><td>Elenca il contenuto della directory indicata</td></tr>
<tr><td>Noop</td><td><tt>NOOP</tt></td><td>&nbsp;</td><td>Indica nessuna azione tranne l'invio di un Ok dal server</td></tr>
<tr><td>Password</td><td><tt>PASS</tt></td><td><tt><password></tt></td><td>Completa, per alcuni server, l'identificazione dell'utente. Deve essere immediatamente preceduta dal comando <tt>USER</tt></td></tr>
<tr><td>Passive</td><td><tt>PASV</tt></td><td>&nbsp;</td><td>Mette il server in ascolto su una porta che non &egrave; quella predefinita in attesa di una connessione dati</td></tr>
<tr><td>Data port</td><td><tt>PORT</tt></td><td><tt><host-port></tt></td><td>Indirizzo internet dell'host e indirizzo TCP della porta, per la connessione dati</td></tr>
<tr><td>Print working directory</td><td><tt>PWD</tt></td><td>&nbsp;</td><td>Nella risposta viene indicato il nome della directory corrente</td></tr>
<tr><td>Logout</td><td><tt>QUIT</tt></td><td>&nbsp;</td><td>Disconnette l'utente e chiude la connessione di controllo. Se i file sono ancora in trasferimento, attende che terminino prima di chiudere le connessioni</td></tr>
<tr><td>Reinitialize</td><td><tt>REIN</tt></td><td>&nbsp;</td><td>Resetta tutti i parametri, termina le connessioni dati ma mantiene quelle di controllo ed aspetta un comando <tt>USER</tt></td></tr>
<tr><td>Restart</td><td><tt>REST</tt></td><td><tt><marker></tt></td><td>Riprende il trasferimento file dall'offset indicato</td></tr>
<tr><td>Retrieve</td><td><tt>RETR</tt></td><td><tt><pathname></tt></td><td>Obbliga il server a spedire una copia del file all'utente/server dall'altra parte della connessione</td></tr>
<tr><td>Remove directory</td><td><tt>RMD</tt></td><td><tt><pathname></tt></td><td>Rimuove dal server la directory specificata</td></tr>
<tr><td>Rename from</td><td><tt>RNFR</tt></td><td><tt><pathname></tt></td><td>Indica il vecchio nome del file da rinominare. Deve essere immediatamente seguito da un <tt>RNTO</tt></td></tr>
<tr><td>Rename to</td><td><tt>RNTO</tt></td><td><tt><pathname></tt></td><td>Indica il nuovo nome del file da rinominare, indicato dal comando <tt>RNFR</tt> immediatamente precedente</td></tr>
<tr><td>Site parameters</td><td><tt>SITE</tt></td><td><tt><string></tt></td><td>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</td></tr>
<tr><td>Structure mount</td><td><tt>SMNT</tt></td><td><tt><pathname></tt></td><td>Inserisce la struttura di file specificata</td></tr>
<tr><td>Status</td><td><tt>STAT</tt></td><td><tt><pathname></tt></td><td>&Egrave; 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></td></tr>
<tr><td>Store</td><td><tt>STOR</tt></td><td><tt><pathname></tt></td><td>Obbliga il server ad accettare i dati inviati tramite la connessione dati e salvarli</td></tr>
<tr><td>Store unique</td><td><tt>STOU</tt></td><td><tt><pathname></tt></td><td>Obbliga il server ad accettare i dati inviati tramite la connessione dati e salvarli con un nome univoco</td></tr>
<tr><td>File structure</td><td><tt>STRU</tt></td><td><tt><structure-code></tt></td><td>Codice della struttura dati (<tt>F=file</tt>, <tt>R=record</tt>, <tt>P=page</tt>). Il valore di default &egrave; <tt>F</tt></td></tr>
<tr><td>System</td><td><tt>SYST</tt></td><td>&nbsp;</td><td>Restituisce il sistema operativo in uso sul server</td></tr>
<tr><td>Representation type</td><td><tt>TYPE</tt></td><td><tt><type-code></tt></td><td>Tipo di rappresentazione dei dati (<tt>A=ASCII</tt>, <tt>E=EBCDIC</tt>, <tt>I=binary</tt>). Il valore di default &egrave; <tt>A</tt></td></tr>
<tr><td>User Name</td><td><tt>USER</tt></td><td><tt><username></tt></td><td>Identificazione dell'utente richiesta dal server per poter accedere al suo file system</td></tr>
</table>
 
== Descrizione ==
=== Modello ===
[[File:FTP model.png|centre|Modello FTP]]
 
Dove:
----
* '''PI''' (''protocol interpreter'') è l'interprete del protocollo, utilizzato da client (User-PI) e server (Server-PI) per lo scambio di comandi e risposte. In gergo comune ci si riferisce a esso come "canale comandi".
Risorse esterne (in inglese):
* '''DTP''' (''data transfer process'') è il processo di trasferimento dati, utilizzato da client (User-DTP) e server (Server-DTP) per lo scambio di dati. In gergo comune ci si riferisce a esso come "canale dati".
* [http://www.ietf.org/rfc/rfc0959.txt RFC 959]
 
* [http://www.ietf.org/rfc/rfc2228.txt RFC 2228]
=== Funzionamento generale ===
* [http://www.ietf.org/rfc/rfc2640.txt RFC 2640]
FTP, a differenza di altri protocolli come per esempio [[Hypertext Transfer Protocol|HTTP]], utilizza due [[connessione (informatica)|connessioni]] separate per gestire comandi e dati. Un [[server FTP]] generalmente rimane in ascolto sulla [[Porta (reti)|porta]] 21 [[Transmission Control Protocol|TCP]] a cui si connette il [[client]]. La connessione da parte del client determina l'inizializzazione del canale comandi attraverso il quale client e server si scambiano comandi e risposte.
 
Lo scambio effettivo di dati (come per esempio un [[file]]) richiede l'apertura del canale dati, che può essere di due tipi:
* In un canale dati di tipo '''attivo''' il client apre una porta solitamente casuale, tramite il canale comandi rende noto il numero di tale porta al server e attende che si connetta. Una volta che il server ha attivato la connessione dati al client FTP, quest'ultimo effettua il binding della porta sorgente alla porta 20 del server FTP. A tale scopo possono venire impiegati i comandi '''PORT''' o '''EPRT''', a seconda del protocollo di rete utilizzato (in genere [[IPv4]] o [[IPv6]]).
* In un canale dati di tipo '''passivo''' il server apre una porta solitamente casuale (superiore alla 1023), tramite il canale comandi rende noto il numero di tale porta al client e attende che si connetta. A tale scopo possono venire impiegati i comandi '''PASV''' o '''EPSV''', a seconda del protocollo di rete utilizzato (in genere [[IPv4]] o [[IPv4|IPv6]]).
 
Sia il canale comandi, sia il canale dati sono delle connessioni [[Transmission Control Protocol|TCP]]; FTP crea un nuovo canale dati per ogni file trasferito all'interno della [[sessione]] utente, mentre il canale comandi rimane aperto per l'intera durata della sessione utente, in altre parole il canale comandi è persistente mentre il canale dati è non persistente.
 
Un server FTP offre svariate funzioni che permettono al client di interagire con il suo [[filesystem]] e i file che lo popolano, tra cui:
* [[Download]]/[[upload]] di file.
* Resume di trasferimenti interrotti.
* Rimozione e rinomina di file.
* Creazione di [[directory]].
* Navigazione tra directory.
 
FTP fornisce inoltre un sistema di [[autenticazione]] in chiaro (non criptato) degli accessi. Il client che si connette potrebbe dover fornire delle credenziali a seconda delle quali gli saranno assegnati determinati privilegi per poter operare sul filesystem. L'autenticazione cosiddetta "anonima" prevede che il client non specifichi nessuna [[password]] di accesso e che lo stesso abbia privilegi che sono generalmente di "sola lettura".
 
== Comandi ==
Lista dei comandi definiti nella RFC 959<ref name="rfc959" />.
 
{{clear}}
{|class="wikitable" style="margin:auto;clear:both;"
|+ '''Comandi'''
|-
!Nome
!Comando
!Parametri
!Descrizione
|-
| Abort
| <code>ABOR</code>
| &nbsp;
| Interrompe trasferimento dati.
|-
| Account
| <code>ACCT</code>
| <code><account-information></code>
| Informazioni account (raramente usato).
|-
| Allocate
| <code>ALLO</code>
| <code><decimal-integer></code>
| Alloca spazio sufficiente per ricevere un file (raramente usato).
|-
| Append (with create)
| <code>APPE</code>
| <code><pathname></code>
| Appende dati ad un file esistente.
|-
| Change to parent directory
| <code>CDUP</code>
| &nbsp;
| Va alla parent directory.
|-
| Change working directory
| <code>CWD</code>
| <code><pathname></code>
| Cambia directory corrente.
|-
| Delete
| <code>DELE</code>
| <code><pathname></code>
| Cancella file.
|-
| Help
| <code>HELP</code>
| <code><command></code>
| Restituisce la lista dei comandi accettati dal server. Con argomento fornisce spiegazioni riguardo al comando specificato.
|-
| List
| <code>LIST</code>
| <code><pathname></code>
| Restituisce il contenuto della directory specificata con metadati
|-
| Transfer mode
| <code>MODE</code>
| <code><mode-type></code>
| Imposta la modalità di trasferimento (<code>S=stream</code>, <code>B=block</code>, <code>C=compressed</code>).
|-
| Make directory
| <code>MKD</code>
| <code><pathname></code>
| Crea directory.
|-
| Name list
| <code>NLST</code>
| <code><pathname></code>
| Restituisce i nomi dei file contenuti nella directory specificata.
|-
| Noop
| <code>NOOP</code>
| &nbsp;
| Non fa nulla (usato prevalentemente per prevenire disconnessioni per inattività prolungata).
|-
| Password
| <code>PASS</code>
| <code><password></code>
| Specifica la password dell'utente.
|-
| Passive
| <code>PASV</code>
| &nbsp;
| Inizializza connessione dati passiva.
|-
| Data port
| <code>PORT</code>
| <code><host-port></code>
| Inizializza connessione dati attiva.
|-
| Print working directory
| <code>PWD</code>
| &nbsp;
| Ritorna nome della directory corrente.
|-
| Logout
| <code>QUIT</code>
| &nbsp;
| Disconnette. Se un trasferimento è ancora in corso attende che termini prima di chiudere la sessione.
|-
| Reinitialize
| <code>REIN</code>
| &nbsp;
| Effettua il log-off dell'utente loggato.
|-
| Restart
| <code>REST</code>
| <code><marker></code>
| Riprende il trasferimento dall'offset indicato.
|-
| Retrieve
| <code>RETR</code>
| <code><pathname></code>
| Preleva file (da server a client).
|-
| Remove directory
| <code>RMD</code>
| <code><pathname></code>
| Rimuove directory.
|-
| Rename from
| <code>RNFR</code>
| <code><pathname></code>
| Rinomina (sorgente).
|-
| Rename to
| <code>RNTO</code>
| <code><pathname></code>
| Rinomina (destinazione).
|-
| Site parameters
| <code>SITE</code>
| <code><command></code>
| Manda comando specifico per il server (non standardizzato; varia tra implementazioni).
|-
| Structure mount
| <code>SMNT</code>
| <code><pathname></code>
| Monta struttura (raramente usato).
|-
| Status
| <code>STAT</code>
| <code><pathname></code>
| Restituisce statistiche riguardo al server. Con argomento lista il contenuto di una directory utilizzando il canale comandi.
|-
| Store
| <code>STOR</code>
| <code><pathname></code>
| Spedisce un file (da client a server).
|-
| Store unique
| <code>STOU</code>
| <code><pathname></code>
| Spedisce un file (da client a server) utilizzando un nome univoco.
|-
| File structure
| <code>STRU</code>
| <code><structure-code></code>
| Imposta la struttura dati (<code>F=file</code>, <code>R=record</code>, <code>P=page</code>). Praticamente inutilizzato. Il valore di default è <code>F</code>.
|-
| System
| <code>SYST</code>
| &nbsp;
| Restituisce il tipo di sistema operativo.
|-
| Representation type
| <code>TYPE</code>
| <code><type></code>
| Imposta la modalità di trasferimento (<code>A=ASCII</code>, <code>E=EBCDIC</code>, <code>I=Binary</code>, <code>L=Local</code>). Il valore di default è <code>A</code>. EBCDIC e Local sono raramente usati (esempio: unicamente su sistemi mainframe).
|-
| User Name
| <code>USER</code>
| <code><username></code>
| Specifica nome utente.
|}
 
== Codici di risposta ==
* 1xx: Risposta positiva preliminare. L'azione richiesta è incominciata ma ci sarà un'altra risposta a indicare che essa è effettivamente completata.
* 2xx: Risposta positiva definitiva. L'azione richiesta è completata. Il client può ora mandare altri comandi.
* 3xx: Risposta positiva intermedia. Il comando è stato accettato ma è necessario mandarne un secondo affinché la richiesta sia completata definitivamente.
* 4xx: Risposta negativa temporanea. Il comando non è andato a buon fine ma potrebbe funzionare in un secondo momento.
* 5xx: Risposta negativa definitiva. Il comando non è andato a buon fine e il client non dovrebbe più ripeterlo.
* x0x: Errore di sintassi.
* x1x: Risposta a una richiesta informativa.
* x2x: Risposta relativa alla connessione.
* x3x: Risposta relativa all'account e/o ai permessi.
* x4x: Non meglio specificato.
* x5x: Risposta relativa al file-system.
 
== Problemi relativi alla sicurezza ==
La specifica originale di FTP non prevede alcuna [[cifratura]] per i dati scambiati tra client e server. Questo comprende nomi utenti, password, comandi, codici di risposta e file trasferiti i quali possono essere [[Sniffing|"sniffati"]] o visionati da malintenzionati in determinate situazioni (esempio: ambienti [[intranet]]).
 
Il problema è comune a diversi altri protocolli utilizzati prima della diffusione di [[Secure Sockets Layer|SSL]] quali [[Hypertext Transfer Protocol|HTTP]], [[TELNET]] e [[Simple Mail Transfer Protocol|SMTP]]. Per ovviare al problema è stata definita una nuova specifica che aggiunge al protocollo FTP originale un layer di cifratura [[Transport Layer Security|SSL/TLS]] più una nuova serie di comandi e codici di risposta.
Il protocollo prende il nome di [[FTPS]] ed è definito nella [http://www.faqs.org/rfcs/rfc4217.html RFC-4217].
Da non confondersi con [[SFTP]] che è comunque una valida alternativa per ovviare al problema descritto.
 
== Applicazioni che utilizzano FTP ==
[[FileZilla]], Fire Downloader, [[gFTP]], [[JDownloader]] sono alcuni dei tanti [[:Categoria:Gestori di download|gestori di download]] che permettono di trasferire i dati mediante connessione FTP.
 
Tuttavia nei [[sistema operativo|sistemi operativi]], in genere, si può effettuare l'accesso anche tramite [[Interfaccia a riga di comando|riga di comando]].
 
== Server FTP ==
Alcuni server FTP popolari sono<ref>{{Cita web|url=https://www.techwench.com/4-popular-ftp-servers-reviewed/|titolo=4 Popular FTP Servers Reviewed {{!}} TechWench|accesso=4 aprile 2019}}</ref>:
* [[FileZilla Server]] (Windows e Linux)
* Titan FTP Server<ref>{{Cita web|url=https://www.https://titanftp.com//|titolo=SFTP Server Software For Windows|sito=TitanFTP.com|accesso=5 novembre 2019|urlarchivio=https://web.archive.org/web/20130819141428/http://https/|urlmorto=sì}}</ref> (Windows)
* Pure-FTPd (Unix)
* VsFTPd (Unix)
* ProFTPd (Unix)
 
== Note ==
<references />
 
== Bibliografia ==
* {{IETF|959|FILE TRANSFER PROTOCOL (FTP)}}
* {{IETF|2228|FTP Security Extensions}}
* {{IETF|2640|Internationalization of the File Transfer Protocol}}
* {{IETF|4217|Securing FTP with TLS}}
 
== Voci correlate ==
* [[Hypertext Transfer Protocol]] (HTTP)
* [[Protocollo di comunicazione]]
* [[Protocollo di rete]]
 
== Altri progetti ==
{{interprogetto|preposizione=sul}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|File Transfer Protocol}}
* {{cita web|url=http://www.rfc.altervista.org/rfctradotte/rfc959_tradotta.txt|titolo=FILE TRANSFER PROTOCOL (FTP) (protocollo per il trasferimento di file)|traduttore=ComiSAT|mese=aprile|anno=2003}}
* {{cita web|lingua=en|url=https://titanftp.com/2021/02/23/whats-the-difference-ftp-sftp-and-ftp-s/|titolo=What’s the Difference Between FTP and SFTP?|sito=Titan FTP|data=23 febbraio 2021|urlarchivio=https://web.archive.org/web/20230313143536/https://titanftp.com/2021/02/23/whats-the-difference-ftp-sftp-and-ftp-s/}}
* {{cita web|lingua=en|url=https://titanftp.com/2018/08/23/what-is-the-difference-between-active-and-passive-ftp/|titolo=What is the Difference Between Active and Passive FTP?|sito=Titan FTP|data=23 agosto 2018|urlarchivio=https://web.archive.org/web/20230328113459/https://titanftp.com/2018/08/23/what-is-the-difference-between-active-and-passive-ftp/}}
 
{{IPstack}}
 
{{Controllo di autorità}}
{{Portale|internet|telematica}}
 
[[Categoria:Massachusetts Institute of Technology]]
[[Categoria:File Transfer Protocol| ]]