FTP significa File Transfer Protocol (Protocolo de Transferência de Arquivos), e é uma forma bastante rápida e versátil de transferir arquivos (também conhecidos como ficheiros), sendo uma das mais usadas na internet.
Pode referir-se tanto ao protocolo quanto ao programa que implementa este protocolo (neste caso, tradicionalmente aparece em letras minúsculas, por influência do programa de transferência de arquivos do Unix).
A transferência de dados em redes de computadores envolve normalmente transferência de ficheiros e acesso a sistemas de ficheiros remotos (com a mesma interface usada nos ficheiros locais). O FTP (RFC 959) é baseado no TCP, mas é anterior à pilha de protocolos TCP/IP, sendo posteriormente adaptado para o TCP/IP. É o standard da pilha TCP/IP para transferir ficheiros, é um protocolo genérico independente de hardware e do sistema operativo e transfere ficheiros por livre arbítrio, tendo em conta restrições de acesso e propriedades dos ficheiros.
Modos e interfaces
O protocolo subjacente ao FTP pode correr nos modos iterativo ou "batch". O cliente FTP fornece uma interface interactiva, enquanto que o MIME e o HTTP usam-no directamente. O protocolo permite a gravação e obtenção de ficheiros, a listagem do directório e a alteração do directório de trabalho.
Se quiser ler sobre Modelo de Referencia OSI-RM e Modelo de Referencia da Internet, clique aqui do lado [1] e procure Níveis de Entendimento > Modelos de Referência.
[editar] Comandos do cliente FTP
Os servidores de FTP só muito raramente mudam, mas novos clientes FTP aparecem com bastante regularidade. Estes clientes variam no número de comandos que implementam, a maioria dos clientes FTP comerciais implementam apenas um pequeno subgrupo de comandos FTP. Mesmo que o FTP seja um protocolo orientado a linha de comandos, a nova geração dos clientes FTP esconde esta orientação num ambiente gráfico, muitas vezes, muito desenvolvido.
A interface cliente do FTP do BSD UNIX é um standard por si mesma, possuindo muitos comandos arcaicos: tenex ou carriage control que hoje não têm uso. Os comandos mais usados são o cd, dir, ls, get e put.
O FTP tem particularidades que são hoje pouco comuns. Depois da activação do ftp, é estabelecida uma conexão ao host remoto. Esta conexão envolve o uso da conta do usuário no host remoto, sendo que alguns servidores FTP disponibilizam anonymous FTP.
Certos comandos são os que fazem a transferência bidireccional de ficheiros, são eles:
* get do servidor FTP para o host local (mget para mais que um ficheiro)
* put para o servidor FTP a partir do host local (mput para mais que um ficheiro)
Nota: alguns comandos podem não funcionar com o usuário sendo anonymous, pois tal conta tem limitações de direitos a nível do sistema operacional.
[editar] Tradução de nomes de ficheiros
A sintaxe dos nomes dos ficheiros pode ser incompatível entre diferentes Sistemas Operativos. O UNIX usa 128 caracteres, maiúsculas e minúsculas, enquanto que o DOS usa 8 + 3 caracteres e apenas maiúsculas. Certos nomes não podem ser usados em alguns sistemas. Devido a isto tudo o BSD ftp define regras para a tradução de nomes.
[editar] Mensagens FTP
O FTP permite dois modos de transferência de mensagens FTP, 'texto' (com traduções apropriadas) ou 'binário' (sem tradução). Cada mensagem do servidor inclui um identificador decimal de 3 dígitos (exemplo: 226 Transfer complete). Estas mensagens podem ser vistas ou não, usando para isso o modo 'verbose' ou 'quiet', respectivamente.
[editar] Modo cliente-servidor do FTP
O Servidor remoto aceita uma 'conexão de controle' do cliente local. O cliente envia comandos para o servidor e a conexão persiste ao longo de toda a sessão (tratando-se assim de um protocolo que usa o TCP).
O servidor cria uma conexão de dados para a transferência de dados, sendo criada uma conexão para cada ficheiro transferido. Estes dados são transferidos do servidor para o cliente e vice e versa.
Os comandos estão separados dos dados e o cliente pode enviar comandos durante a transferência de dados. O encerramento da conexão indica o fim do ficheiro.
[editar] Lista de clientes FTP
* SmartFTP
* Cute_FTP
* Filezilla
* Core FTP
* WS FTP
* LeechFTP
* gFTP
[editar] Lista de servidores FTP
* vsftp