FTP - File Transfer Protocol

FTP

O FTP é um protocolo que permite a transferência de ficheiros entre dois computadores.

O FTP é um dos protocolos mais conhecidos e usados. Poderá ser usado para se obter ficheiros disponíveis num servidor ou para se enviar ficheiros para outro computador.

Para se transferir um ficheiro recorrendo ao FTP é necessário que umas das máquinas possua um cliente de FTP e que na outra esteja instalado um servidor de FTP. O cliente inicia a sessão estabelecendo um canal de comunicações com o servidor; o utilizador identifica-se (login e password) e a partir daquele momento poderá iniciar a transferência de ficheiros.

Quase todos os PCs tem pelo menos um cliente de FTP. Caso sejamos utilizadores do Windows bastará abrir uma janela de Ms-DOS e executar ftp.


Modos de transferência de ficheiros

Existem dois modos de se transferir ficheiros: modo ASCII e modo binário

Regra geral:

Quando duas máquinas envolvidas na transferência utilizam a mesma representação para os caracteres, a transferência de ficheiros de texto em modo binário não altera o significado dos mesmos (a transferência é feita correctamente)
No entanto, quando as duas máquinas envolvidas na transferência utilizam representações diferentes para os caracteres (ex: DOS e Unix) a utilização do tipo ascii permite que a conversão entre as duas representações seja efectuada de forma automática.


Acesso anónimo

Os servidores de FTP são uma das formas mais vulgares de disponibilizar documentos e software na Internet. O acesso a estes servidores que disponibilizam ficheiros a qualquer utilizador da Internet faz-se de forma anónima, usando o login "anonymous" e indicando o email do utilizador no campo da password.


Alguns comandos básicos (por ordem alfabética):

Comando Descrição
ascii Determina que o modo de transferência é ascii
binary Determina que modo de transferência é binário
cd directoria Permite mudar a directoria corrente em que estamos posicionados no servidor
close Termina a ligação ao servidor
get nome_do_ficheiro Inicia a transferência do ficheiro nome_do_ficheiro do servidor para a directoria corrente do cliente
hash Quando activada esta função durante a transferência de um ficheiro escreve no terminal o caracter # por cada bloco de informação transferido (normalmente 2048 bytes)
lcd Este comando tem duas funções:
      (i)   sem parâmetros indica a directoria corrente no cliente
      (ii)   com parâmetros permite alterar a directoria corrente no cliente
ls Este comando pode ser usado sem parâmetros, listando o conteúdo da directoria corrente do servidor; Como parâmetro pode-se indicar a directoria do servidor de que se quer listar o conteúdo
mget O mesmo que get, mas permitindo indicar vários ficheiros (ex.: mget *.txt)
mput O mesmo que put, mas permitindo indicar vários ficheiros (ex.: mput *.exe)
open servidor Estabelece a ligação ao servidor
put nome_do_ficheiro Inicia a transferência do ficheiro nome_do_ficheiro da directoria corrente para o servidor
quit Permite abandonar o cliente de FTP
status Indica a estado da sessão de ftp e o valor dos parâmetros configuráveis tais como:
      -   se está estabelecida alguma ligação e com que servidor;
      -   tipo de transferência (binário ou ascii) ;
      -   etc.
type Este comando tem duas funções:
      (i)   sem parâmetros indica o modo que está a ser utilizado para a transferência de ficheiros;
      (ii)   com parâmetros permite alterar o modo de transferência (ascii, binário)
user Permite indicar o login/password caso se tenha, na tentativa anterior, falhado a autenticação do utilizador


Exemplo de uso dos comandos get e put

O comando get permite transferir um ficheiro do servidor para o cliente, ao passo que comando put transfere um ficheiro de um cliente para o servidor. O sentido em que a ligação foi estabelecida é importante, para que se compreenda a diferença entre os comandos put e get.
Admitindo que temos permissões de leitura e escrita em duas máquina, depois de se estabelecer uma ligação pode-se transferir ficheiros nos dois sentidos.

Imagine-se que estamos perante duas máquinas em que ambas possuem um servidor de FTP e um cliente de FTP. Nesta situação qualquer uma delas poderá desempenhar o papel de servidor ou de cliente. Aquela que, recorrendo ao cliente de FTP, for utilizada para iniciar as comunicações será a que desempenhará o papel de cliente.

Imagine-se que o nosso computador A vai ligar para B. Neste caso A desempenha o papel de cliente e B o de servidor. Se a ligação é estabelecida de A para B então put é o comando que permite enviar um ficheiro de A para B e o comando get permite transferir um ficheiro de B para A.
Se a ligação for feita de B para A então o comando get permite transferir um ficheiro de B para A e o comando put permite transferir um ficheiro de B para A


Outras notas:

Existem inúmeros clientes com interface gráficas. A maioria dos browsers possuem um cliente FTP intergrado.
Alguns clientes FTP possuem um sistema para recuperar a transmissão a partir do ponto onde ela foi anteriormente interrompida. Este mecanismo evita que tenha de se reiniciar toda a transmissão do ficheiro.




Página actualizada em: 2 Outubro 2000
Página mantida por: Filipe Meneses (meneses@dsi.uminho.pt)