FTP, czyli File Transfer Protocol, to taki stary, ale wciąż często używany protokół do wymiany plików między komputerami w sieci. Moim zdaniem każdy, kto serio myśli o administracji sieciami albo projektowaniu aplikacji webowych, powinien go dobrze rozumieć. Co ciekawe, FTP działa w architekturze klient-serwer, gdzie można zarówno przesyłać pliki do serwera, jak i pobierać je z powrotem – to jest właśnie ta dwukierunkowość. Takie rozwiązanie sprawdza się np. przy zdalnym zarządzaniu plikami na hostingu, przy wdrożeniach stron www albo po prostu w backupie danych. Standard RFC 959 dokładnie opisuje zachowanie FTP. W praktyce, konfigurując serwer FTP, warto pamiętać o zabezpieczeniach, bo w klasycznym wydaniu FTP nie szyfruje danych ani haseł – dlatego coraz częściej spotyka się SFTP lub FTPS. Ale sam mechanizm – oddzielne połączenie dla poleceń i oddzielne dla przesyłania danych – to jest coś, co wyróżnia ten protokół. Inne rozwiązania, jak HTTP czy SMB, mają trochę inne zastosowania. FTP daje tę prostą i skuteczną drogę do przesyłania plików w obie strony, co wielu administratorów docenia od lat.
Patrząc na temat wymiany plików w architekturze klient-serwer, łatwo się zgubić w gąszczu różnych protokołów, bo na pierwszy rzut oka wiele z nich wygląda podobnie. DNS, czyli Domain Name System, to protokół służący głównie do tłumaczenia adresów domenowych na adresy IP. Jego główną rolą jest rozwiązywanie nazw, a nie transferowanie plików – moim zdaniem, czasem ludzie mylą DNS z innymi usługami sieciowymi, bo oba są niezbędne do działania Internetu, ale ich funkcje są zupełnie inne. SMTP (Simple Mail Transfer Protocol) to w zasadzie podstawa dostarczania poczty elektronicznej, a choć technicznie przesyła 'wiadomości', to nie jest projektowany do ogólnej wymiany plików – załączniki to tylko dodatek do maili, a nie pełnoprawny mechanizm transferu plików w obie strony. SNMP z kolei (Simple Network Management Protocol) służy do zarządzania i monitorowania urządzeń sieciowych, takich jak routery czy switche. On przesyła głównie pakiety zarządzające, typu żądania lub odpowiedzi na statystyki, a nie pliki. W praktyce, jeżeli ktoś chce przesyłać pliki z jednego systemu do drugiego w obie strony, to FTP jest takim branżowym standardem. Często można spotkać się z mylnym przekonaniem, że każdy protokół sieciowy pozwala na przesyłanie plików, bo wszystkie 'coś przesyłają'. Jednak w rzeczywistości tylko niektóre zostały pomyślane do transportu plików użytkownika – reszta operuje na bardzo specyficznych danych. Pomijając aspekty bezpieczeństwa, wybór właściwego protokołu często wynika nie tylko z funkcjonalności, ale też z wymagań środowiska, dobrej dokumentacji oraz powszechności rozwiązań (jak właśnie FTP).