O protocolo FTP (File Transfer Protocol) é uma linguagem padrão de comunicação entre duas máquinas, permitindo a dispositivos de tipos diferentes (ou cujo sistema operacional é diferente) transferir arquivos para uma rede que funciona sob TCP/IP.
O FTP funciona num ambiente cliente/servidor, isto é, a máquina remota é configurada como servidor e, consequentemente, espera que a outra lhe peça um serviço. Sob UNIX, o serviço é fornecido pelo que chamamos de daemon, uma pequena tarefa que funciona em segundo plano. O daemon do FTP chama-se FTPD.
Existem vários softwares clientes, sendo que alguns deles são executados por uma linha de comando (ex: o comando FTP, padrão instalado em vários sistemas operacionais). Porém, a grande maioria permite que o usuário manipule arquivos numa interface gráfica (ex: CuteFTP), tornando as transferências de arquivos mais fáceis.
O protocolo FTP permite transferir um arquivo de cada vez, nos dois sentidos, entre a máquina cliente (a que iniciou a conexão, ou seja, a máquina que realizou a chamada) e a máquina servidor (a que prestou o serviço FTP, isto é, a máquina que recebeu a chamada). O protocolo FTP também permite realizar outras ações, como a criação e a eliminação de diretórios (com a condição de estarem vazios), a listagem dos arquivos, a exclusão e a alteração dos nomes de arquivos, etc.
Não devemos confundir a noção de protocolo com a de implementação. Na verdade, um protocolo é um conjunto de regras e procedimentos que foram definidos para padronizar a comunicação, enquanto que a implementação é a programação do software que segue (mais ou menos corretamente) as recomendações do protocolo. Por esta razão, o comando de FTP foi rapidamente aplicado em muitas plataformas, segundo as especificações do protocolo FTP.
O comando de FTP está disponível em diversas plataformas, incluindo UNIX, Windows e Linux. O comando que inicia uma sessão FTP é geralmente o seguinte:
ftp nome_do_servidor
Nesses casos, o nome_do_servidor representa o nome ou o endereço IP da máquina distante à qual o usuário deseja se conectar. Obviamente, é preciso que a máquina-alvo disponha de um serviço FTP.
Ao iniciar a sessão, diversas linhas de texto aparecem na tela. A primeira linha confirma que houve a conexão ao servidor FTP, as seguintes constituem uma mensagem de boas-vindas e podem indicar o tipo de site FTP em questão (ou seja, que tipo de arquivo ele aloja ou o organismo a que pertence) e recomendações para os usuários.
No FTP, cada linha começa com 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 é, por exemplo, precedida do número 220, que significa que "o serviço está pronto para o novo usuário".
O servidor vai pedir seu nome de usuário para definir privilégios de acesso, como o direito de escrita ou leitura. Após validação, uma linha começando com o número 331 vai pedir sua senha, que permanecerá oculta.
Pode acontecer de o servidor ser público. Neste caso, o acesso pode ser feito anonimamente e será necessário iniciar a sessão como anonymous. A tradição diz que, para os servidores públicos, o usuário deve inserir como senha o seu endereço de e-mail, mas você pode digitar o que quiser.
Na validação da senha, uma mensagem indicará se a conexão foi estabelecida ou não e dará as razões para um possível problema. O site pode, por exemplo, ter atingido o seu limite máximo em termos de usuário. Neste caso, a mensagem No more user access allowed aparecerá).
Uma vez conectado, o site FTP espera, por parte dos usuários, comandos que descrevam as ações a serem efetuadas.
Os comandos de 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 permite passar do modo ASCII (envio de documentos de texto) para o modo binário (envio de arquivos em modo binário, ou seja, para os arquivos ‘não texto’, como imagens ou programas) |
ascii | Passa do modo binário para o modo ASCII. Este modo é o modo padrão |
type | Permite mostrar o modo atual de transferência (binário ou ASCII) |
user | Permite-lhe reiniciar uma sessão no site FTP em curso com um nome de usuário diferente. Assim sendo, uma nova senha será solicitada |
ls | Permite listar os arquivos presentes no diretório atual. O comando "ls - l" trata das informações suplementares nos arquivos |
pwd | Mostra o nome completo do diretório atual |
cd | Este comando significa ‘change directory’, ele permite alterar o diretório atual. O comando "Cd." permite acessar o diretório de nível superior |
mkdir | O comando ‘mkdir’ (no UNIX, ou ‘md’ no sistema da Microsoft) permite criar um diretório no diretório em curso. A utilização deste comando é reservada aos usuários que têm um acesso que o permite |
rmdir | Comando rmdir (no UNIX, ou ‘rd’ no sistema da Microsoft) permite excluir um diretório no diretório em curso. A utilização deste comando é reservada aos usuários que têm um acesso que o permite |
get | Este comando permite recuperar um arquivo presente no servidor Se o comando estiver seguido de um nome de arquivo, o arquivo remoto é transferido para a máquina local no diretório local atual Se o comando estiver seguido de dois nomes de arquivos, o arquivo remoto (o primeiro nome) é transferido para a máquina local no diretório local atual, com o nome de arquivo especificado (o segundo nome) Se por acaso o nome de arquivo contiver espaços, é preciso escrevê-lo entre aspas |
put | Este comando permite enviar um arquivo local para o servidor Se o comando estiver seguido de um nome de arquivo, o arquivo local é transferido para o servidor no diretório remoto atual Se o comando estiver seguido de dois nomes de arquivos, o arquivo local (o primeiro nome) é transferido para o servidor no diretório remoto atual, com o nome de arquivo especificado (o segundo nome) Se por acaso o nome de arquivo contiver espaços, é preciso escrevê-lo entre aspas |
open | Fecha a sessão em curso e abre uma nova sessão em outro servidor FTP |
close | Fecha a sessão em curso, deixando o software FTP cliente ativo |
bye | Desconecta o software cliente do servidor FTP e o coloca em estado inativo |
quit | Desconecta o software cliente do servidor FTP e o coloca em estado inativo |
Você pode obter mais informações aqui.