FTP - File Transfer Protocol
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.