História editar

O primeiro protocolo a definir mecanismos para transferência de arquivos foi proposto em 1971, desenvolvido para ser implementado em hosts do M.I.T. Em 1972, com a especificação RFC 354, o File Transfer Protocol – FTP é então usado como o protocolo de transferência de arquivos da rede ARPAnet. Seu objetivo era transferir dados confiavelmente e eficientemente, além de permitir o uso de armazenamento remoto de arquivos.

A partir de então, foram feitas algumas correções de erros, aprimorados pontos que demandavam mais ênfase e adicionadas funcionalidades. Em 1973, como RFC 454, foi publicado o documento oficial do FTP, permanecendo a estrutura original já concebida, mas incluindo mudanças importantes.Nos anos que se seguiram, vários comentários, discussões e pequenas revisões foram publicados.

Em 1980, motivado pela transição do protocolo NCP para o TCP da rede ARPAnet, o FTP foi então especificado para ser usado com o protocolo TCP. O último documento de especificação deste protocolo é o RFC 959.

FTP editar

Os objetivos do FTP são: promover o compartilhamento de arquivos, programas de computadores e/ou dados; promover o acesso a computadores remotos; blindar o usuário da variação dos tipos de sistema de armazenamento de arquivos entre os diversos hosts e finalmente, transferir dados de forma confiável e eficiente. Apesar do FTP poder ser usado diretamente pelo usuário em um terminal, ele foi projetado para ser usado por programas principalmente.

É um dos protocolos mais usados para se transferir arquivos na Internet. Envolve tanto transferência de arquivos quanto acesso a sistemas de arquivos remotos. Independe do hardware ou do sistema operacional e utiliza conexão TCP para estabelecimento da conexão entre cliente e servidor. Faz uso de duas conexões paralelas para transferir um arquivo: uma conexão de controle (informações de usuário e senha, comandos como GET ou PUT etc.) e uma conexão de dados (usada para enviar, efetivamente, o arquivo). Devido a essa característica, dizemos que este protocolo possui controle fora da Banda. A conexão de controle é dita persistente, ou seja, uma vez estabelecida a sessão, ela permanece ativa durante toda a conexão. Já a conexão de dados é dita não persistente, ou seja, a cada nova transferência, estabelece-se uma conexão, que é fechada após o término da tarefa.

Comandos FTP editar

No RFC 959 são definidos 33 comandos, que podem ser utilizados por um usuário em um terminal, embora seja mais comum que as aplicações tenham interfaces que blindem o usuário destas linhas de comando. As instruções são no formato ASCII, de 7 bits, em caracaters maiúsculos, com ou sem argumentos. Alguns dos comandos mais comuns são USER username, PASS password, RETR filename etc. Os nomes são auto-explicativos. USER é usado para o usuário especificado no argumento se conectar ao servidor FTP. RETR é usado para recuperar um arquivo, especificado pelo argumento filename, e assim sucessivamente. Outros comandos são mostrados na tabela abaixo:

Comando Descrição
ascii Transfere arquivos no modo ASCII. Neste modo, há conversão de formatos, caso os sistemas operacionais envolvidos sejam diferentes.
BIN Transfere arquivos no modo binário, não alterando nenhum bit do arquivo
LR ou DIR Listam o conteúdo do diretório atual
CD Permite mudar o diretório remoto
GET Transfere um arquivo da máquina remota para a local. Para transferir mais de um arquivo usa-se mget
HASH Imprime "#" a cada 1024 bytes transferidos. É importante para a visualização do progresso de transferencia de arquivos
PUT Transfere um arquivo da máquina local para a remota. Para transferir mais de um arquivo usa-se mput
QUIT ou BYE Levam ao encerramento da conexão de controle levando ao término da conexão do FTP