O Protocolo de Transferência de Arquivos (do inglês: File Transfer Protocol, abreviado FTP) é um protocolo de comunicação padronizado utilizado para transferir arquivos de computador entre um cliente e um servidor através de uma rede. Desenvolvido no início dos anos 1970, o FTP emergiu como um protocolo fundamental da internet. Seu framework operacional segue um modelo cliente-servidor, onde o cliente inicia uma conexão com o servidor para facilitar a transferência de arquivos. Notavelmente, o FTP utiliza conexões de controle e dados distintas para otimizar o processo de transferência.
O FTP opera através de duas conexões separadas para facilitar a transferência de arquivos entre o cliente e o servidor: a conexão de controle e a conexão de dados.
O FTP opera em dois modos para transferências de arquivos:
Modo Ativo | Modo Passivo |
---|---|
O cliente especifica o endereço IP do servidor e o número da porta para se conectar | O servidor fornece um endereço IP e número de porta, permitindo que o cliente estabeleça uma conexão para transferência de arquivos |
A decisão de usar o modo ativo ou passivo depende da configuração da rede e da capacidade de estabelecer conexões de dados através de firewalls e dispositivos NAT.
As conexões FTP frequentemente encontram obstáculos ao atravessar dispositivos de tradução de endereços de rede (NAT) e firewalls. Dispositivos NAT alteram os endereços IP e números de porta dos pacotes à medida que passam, o que pode interromper o estabelecimento da conexão de dados no FTP. Da mesma forma, os firewalls podem bloquear solicitações de conexão de entrada para a conexão de dados.
Para enfrentar esses desafios, o FTP incorpora um comando PASV (Passivo), permitindo que o servidor designe um endereço IP e número de porta para que o cliente se conecte para a transferência de dados. Esse mecanismo ajuda a contornar as restrições impostas por firewalls e dispositivos NAT. Além disso, alguns firewalls suportam gateways de nível de aplicação capazes de inspecionar o tráfego FTP e abrir e fechar portas dinamicamente conforme necessário para a transferência de dados.
Com o tempo, as transferências de arquivos FTP foram facilitadas por meio de várias aplicações de software. Inicialmente, os clientes FTP eram predominantemente interfaces de linha de comando. No entanto, com os avanços tecnológicos, surgiram aplicações de cliente FTP mais amigáveis. Essas aplicações oferecem recursos como funcionalidade de arrastar e soltar, suporte para retomar transferências interrompidas e interfaces gráficas de usuário (GUIs) para navegação simplificada.
Além disso, muitos navegadores da web incorporaram funcionalidade de cliente FTP, permitindo aos usuários acessar diretamente servidores FTP. No entanto, devido a preocupações de segurança e ao declínio na prevalência do protocolo, os principais navegadores têm eliminado progressivamente o suporte para FTP.
Embora o FTP sirva como um protocolo prático para transferências de arquivos, suas vulnerabilidades de segurança são uma preocupação notável. Entre elas está a transmissão de credenciais de login e dados de arquivos em texto simples, tornando-o suscetível a interceptações e acessos não autorizados.
Para enfrentar essas deficiências de segurança, várias alternativas seguras ao FTP tradicional foram desenvolvidas:
Enquanto ambos, FTP e HTTP, são usados para transferir arquivos pela internet, eles diferem em vários aspectos chave.
Característica | FTP | HTTP |
---|---|---|
Conexão | Canais de controle e dados separados | Conexão única para controle e dados |
Estado | Estado (mantém informações de sessão) | Stateless (cada solicitação é independente) |
Adequação | Arquivos grandes, transferências retomáveis | Arquivos menores, simplicidade e facilidade de uso |
Segurança | Menos seguro (FTP tradicional) | Pode ser seguro com HTTPS |
Cache | Não | Sim (melhora o desempenho para repetições) |