Klien protokol transfer file adalah aplikasi perangkat lunak komputer yang digunakan untuk mengakses server data dengan menggunakan protokol transfer file (FTP). Melalui penggunaan protokol umum ini, klien dapat mentransfer data ke dan dari server. Aplikasi klien menyediakan sarana untuk membuat koneksi dan kemudian mengeluarkan perintah FTP yang sesuai ke server. Muncul dalam berbagai bentuk, dioperasikan melalui antarmuka baris perintah (CLI), antarmuka pengguna grafis (GUI), bahkan browser web umum.
FTP adalah bagian dari lapisan aplikasi atas suite protokol Internet (IP), dengan protokol kontrol transmisi (TCP) yang digunakan untuk transportasi komunikasi. Klien protokol transfer file, kemudian, bertanggung jawab untuk membangun koneksi ke server dengan akhirnya membuka dua koneksi TCP. Yang pertama adalah koneksi kontrol, di mana klien mengirimkan perintah ke server FTP. Perintah pertama yang dikirim melalui koneksi kontrol adalah perintah USER, dengan nama pengguna sebagai argumen, dan kemudian perintah PASS diikuti dengan kata sandi. Setelah dibuat, koneksi kontrol tetap terbuka sepanjang sesi.
Di sini, klien protokol transfer file menyiapkan berbagai mode komunikasi yang akan dimilikinya dengan server. Biasanya, data direpresentasikan dalam salah satu dari dua cara, teks atau biner, tergantung pada data yang dikirim atau diterima. Transfer tipe teks paling sering digunakan untuk file teks biasa yang dikodekan dengan metode pengkodean American Standard Code for Information Interchange (ASCII). Mode biner, juga disebut sebagai mode gambar, adalah untuk transfer file dalam format biner non-teks, seperti gambar digital. Lain, yang disebut mode lokal, adalah cara lain FTP dapat mentransfer data menggunakan format yang unik atau eksklusif.
Saluran TCP kedua yang digunakan oleh klien protokol transfer file adalah koneksi data. Koneksi ini bersifat sementara dan dibuat hanya ketika klien meminta daftar file di server atau mentransfer file ke atau dari server. Sambungan data kemudian dimusnahkan ketika tidak ada transfer data yang terjadi. Koneksi data juga unik dalam cara pembuatannya, baik secara aktif maupun pasif. Klien harus memberi tahu server jenis koneksi data yang akan digunakan tergantung pada jenis koneksi yang tersedia pada klien.
Dengan koneksi data aktif, klien protokol transfer file memberi tahu server nomor port TCP mana yang akan digunakan untuk koneksi data. Namun, ketika digunakan dalam mode pasif, klien hanya memberi tahu server bahwa itu pasif, dan server kemudian memberi tahu klien port TCP mana yang akan digunakan untuk koneksi data. Dalam kebanyakan kasus, klien diatur untuk koneksi pasif karena penggunaan firewall yang melindunginya dari akses yang tidak sah.
Sebagai akibat dari kurangnya keamanan pada FTP, keamanan untuk klien protokol transfer file merupakan bagian integral dari operasinya sehingga aktivitas pengguna aman dari pengintaian. Sejumlah teknik keamanan tambahan telah dirancang untuk digunakan dengan FTP selama bertahun-tahun, seperti klien baik secara eksplisit menyebutkan protokol keamanan untuk digunakan atau yang secara otomatis tersirat. Klien lain mencoba menggunakan FTP melalui terowongan shell aman (SSH), yang mungkin mengalami kesulitan karena sifat koneksi data yang cepat berlalu.