FTP (File Transfer Protocol) é um protocolo, ou seja, uma linguagem standard de comunicação entre duas máquinas, permitindo a máquinas de tipos diferentes (ou cujo sistema de exploração é diferente) transferir ficheiros para uma rede que funciona sob TCP/IP.
O FTP funciona num ambiente cliente/servidor, isto é, a máquina distante é configurada como servidor e por conseguinte espera que uma máquina lhe peça um serviço. Sob UNIX, o serviço é fornecido pelo que se chama um "demónio", uma pequena tarefa que funciona em fundo. O demónio FTP chama-se ftpd.
Os software clientes são numerosos, alguns dos quais se executam a partir de uma linha de comando (por exemplo, o comando ftp, aplicada em padrão em numerosos sistemas de exploração), mas uma grande maioria permite manipular ficheiros num interface gráfico (CuteFTP por exemplo), tornando as transferências de ficheiros mais conviviais.
O protocolo FTP permite trocar um ficheiro ao mesmo tempo, nos dois sentidos entre a máquina cliente (a que iniciou a conexão, por conseguinte a máquina recorrente) e a máquina servidor (a que fornece o serviço FTP, por conseguinte a máquina chamada). O protocolo FTP permite também outras acções, como a criação e a supressão de directórios (com a condição de estarem vazios), a listagem dos ficheiros, a supressão e a alteração de nomes de ficheiros, etc.
Não se deve confundir as duas noções de protocolo e aplicação! Com efeito, um protocolo é um conjunto de regras e procedimentos que foram definidos para estandardizar a comunicação, enquanto que a aplicação é a programação de um software que segue (mais ou menos bem) as recomendações do protocolo.
Assim, o comando "ftp" foi rapidamente aplicado em numerosas plataformas, segundo as especificações do protocolo FTP.
O comando "ftp" está disponível de origem em diversas plataformas, incluindo UNIX, Windows e Linux. O comando que permite iniciar uma sessão FTP é geralmente o seguinte:
ftp nom_du_serveur
nom_du_serveur representa o nome ou o endereço IP da máquina distante à qual se deseja ligar. É necessário obviamente que a máquina alvo disponha de um serviço FTP.
Aquando da iniciação da conexão, diversas linhas de texto aparecem no ecrã. A primeira linha assinala que está ligado a um servidor FTP, as linhas seguintes constituem uma mensagem de boas-vindas, podendo indicar o tipo de site FTP de que se trata (i.e, que tipo de ficheiros ele aloja ou o organismo a que pertence), ou recomendações para os utilizadores.
Sob FTP, cada linha começa por um número que indica um código relativo a uma falha ou a um sucesso. No caso da mensagem de boas-vindas, a linha está, por exemplo, precedida do número 220, que significa que "o serviço está pronto para o novo utilizador".
O servidor pede-lhe que escreva o seu nome de utilizador (também chamado login ou identificador), para definir privilégios de acesso (como o direito de escrita ou de leitura). Após validação, uma linha que começa pelo número 331 convida-o a introduzir a sua senha, que será mascarada, ou seja, não aparecerá no ecrã.
Pode acontecer que o servidor seja público. Neste caso, o acesso pode fazer-se anonimamente, será necessário iniciar a sessão como: "anonymous". A tradição diz que, para os servidores públicos, o utilizador escreva como senha o seu endereço de correio electrónico, mas pode escrever o que quiser.
Aquando da validação da senha, uma mensagem indicará se a conexão foi estabelecida ou não, neste caso as razões serão dadas (o síte pode, por exemplo, ter atingido o seu limite máximo em termos de utilizador, neste caso a mensagem "No more user access allowed" aparece).
Uma vez ligado ao síte, o FTP espera por parte do utilizador comandos que descrevam as acções a efectuar.
Os comandos FTP usuais são os seguintes :
| Comando | Descrição |
|---|---|
| help | Mostra o conjunto dos comandos suportados pelo servidor FTP |
| status | Permite conhecer certos parâmetros da máquina cliente |
| binary | Este comando fá-lo passar do modo ASCII (envio de documentos de texto) para o modo binário (envio de ficheiros em modo binário, ou seja, para os ficheiros não texto, como imagens ou programas) |
| ascii | Passa do modo binário ao modo ASCII. Este modo é o modo por defeito |
| type | Permite mostar o modo corrente de transferência (binário ou ASCII) |
| user | Permite-lhe reiniciar uma sessão no site FTP corrente com um nome de utilizador diferente. Uma nova senha ser-lhe-á então pedida |
| ls | Permite listar os ficheiros presentes no directório corrente. O comando "ls - l" trata das informações suplementares nos ficheiros |
| pwd | Mostra o nome completo do directório corrente |
| cd | Este comando significa change directory, permite alterar o directório corrente. O comando "Cd." permite aceder ao directório de nível superior |
| mkdir | O comando mkdir (sob UNIX, ou md sob sistema Microsoft) permite criar um directório no directório corrente. A utilização deste comando está reservada aos utilizadores que têm um acesso que o permite |
| rmdir | Comando rmdir (sob UNIX, ou rd sob sistema Microsoft) permite suprimir um directório no directório corrente. A utilização deste comando está reservada aos utilizadores que têm um acesso que o permite |
| get | Este comando permite recuperar um ficheiro presente no servidor·
Se por acaso o nome de ficheiro contiver espaços, é necessário escrevê-lo entre aspas. |
| put | Este comando permite enviar um ficheiro local para o servidor
Se por acaso o nome de ficheiro contiver espaços, é necessário escrevê-lo entre aspas. |
| open | Fecha a sessão corrente e abre uma nova sessão num outro servidor FTP |
| close | Fecha sessão corrente, deixando o software FTP cliente activo |
| bye | Desliga o software cliente do servidor FTP e põe-no em estado inactivo |
| quit | Desliga o software cliente do servidor FTP e põe-no em estado inactivo |