Jawaban:
Berikut perbandingan kinerja keduanya. HTTP lebih responsif untuk permintaan-respons file kecil, tetapi FTP mungkin lebih baik untuk file besar jika disetel dengan benar. FTP biasanya dianggap lebih cepat. FTP membutuhkan saluran kontrol dan status dipertahankan selain status TCP tetapi HTTP tidak. Ada 6 paket transfer sebelum data mulai ditransfer dalam FTP tetapi hanya 4 dalam HTTP.
Saya pikir lapisan TCP yang disetel dengan benar akan lebih berpengaruh pada kecepatan daripada perbedaan antara protokol lapisan aplikasi. Sun Blueprint Understanding Tuning TCP memiliki detail.
Berikut ini adalah perbandingan karakteristik masing-masing protokol yang baik.
Saya baru saja membandingkan transfer file melalui FTP dan HTTP:
Hasil:
fdm
): 1 menitJadi, pada dasarnya di bawah situasi "kehidupan nyata":
1) HTTP lebih cepat dari FTP saat mengunduh satu file besar.
2) HTTP dapat menggunakan unduhan paralel yang membuatnya 6x kali lebih cepat dari FTP tergantung pada kondisi jaringan.
Banyak firewall melepaskan koneksi keluar yang tidak ke port 80 atau 443 (http & https); beberapa bahkan menjatuhkan koneksi ke port yang bukan HTTP (S). FTP mungkin atau mungkin tidak diizinkan, tidak untuk berbicara tentang mode aktif / PASV.
Juga, HTTP / 1.1 memungkinkan untuk permintaan parsial yang jauh lebih baik ("hanya mengirim dari byte 123456 ke akhir file"), permintaan bersyarat dan caching ("hanya mengirim jika konten berubah / jika tanggal modifikasi terakhir diubah") dan kompresi konten (gzip).
HTTP jauh lebih mudah digunakan melalui proxy.
Dari bukti anekdotal saya, HTTP lebih mudah digunakan dengan koneksi yang terputus / lambat / tidak stabil; mis. tidak diperlukan untuk (kembali) membuat sesi login sebelum (kembali) memulai transfer.
OTOH, HTTP tidak memiliki kewarganegaraan, jadi Anda harus melakukan otentikasi dan membuat jejak "siapa yang melakukan apa saat" sendiri.
Satu-satunya perbedaan dalam kecepatan yang saya perhatikan adalah mentransfer banyak file kecil: HTTP dengan pipelining lebih cepat (mengurangi bolak-balik, terutama yang terlihat pada jaringan latensi tinggi).
Perhatikan bahwa HTTP / 2 menawarkan lebih banyak optimasi, sedangkan protokol FTP tidak melihat pembaruan selama beberapa dekade (dan bahkan ekstensi untuk FTP memiliki penyerapan yang tidak signifikan oleh pengguna). Jadi, kecuali Anda mentransfer file melalui mesin waktu, HTTP tampaknya telah menang.
(Tangensial: ada protokol yang lebih cocok untuk transfer file, seperti rsync
atau BitTorrent, tetapi protokol tersebut tidak memiliki mindshare yang banyak, sedangkan HTTP adalah Everywhere ™)
Salah satu pertimbangannya adalah bahwa FTP dapat menggunakan port non-standar, yang dapat membuat proses firewall sulit (terutama jika Anda menggunakan SSL). HTTP biasanya pada port yang dikenal, jadi ini jarang menjadi masalah.
Jika Anda memutuskan untuk menggunakan FTP, pastikan Anda membaca tentang FTP Aktif dan Pasif .
Dalam hal kinerja, pada akhirnya mereka berdua memuntahkan file langsung ke koneksi TCP sehingga harus hampir sama.