Membandingkan HTTP dan FTP untuk mentransfer file

125

Apa kelebihan (atau batasan) dari satu di atas yang lain untuk mentransfer file melalui Internet?

(Saya menyadari bentuk aman dari kedua protokol. Saya ingin mendengar perbandingan melalui pengalaman pribadi dalam hal kinerja, keandalan, batasan ukuran file, dll.)

Mistik
sumber

Jawaban:

99

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.

John Ellinwood
sumber
22
+1 jawaban yang bagus. Saya pikir hari FTP telah dan sudah berlalu, tidak ada relevansi lagi. Ini juga babi mutlak untuk diterapkan.
skaffman
7
Ukuran apa yang dimaksud dengan file "kecil" atau "besar"?
Urbycoz
The perbandingan kinerja poin link ke analisis keuntungan yang diharapkan dari pelaksanaan P-HTTP, T / TCP, dan S-TCB. Tidak ada di mana disebutkan FTP. Juga, tautan yang disetel dengan benar rusak.
Ditebangi
@Trisped apakah Anda membaca tautan perbandingan kinerja? Ada 12 referensi untuk FTP dan bagian pertama mengatakan "Protokol HTTP pada awalnya dikembangkan untuk mengurangi inefisiensi dari FTP ..." dan kemudian menjelaskan. Saya juga memperbarui tautan "Understanding Tuning TCP" ... sepertinya Oracle membuang semua whitepaper Sun Blueprints yang lama.
John Ellinwood
2
16 Agustus 1996 ... benarkah? Bahkan dalam jawaban 2009 Anda, Anda tidak dapat mengharapkan ini untuk mewakili keadaan saat ini. -1
user541686
29

Saya baru saja membandingkan transfer file melalui FTP dan HTTP:

  • lebih dari dua koneksi server yang sangat baik
  • menggunakan file .zip 1GB yang sama
  • dalam kondisi jaringan yang sama (diuji satu demi satu)

Hasil:

  • menggunakan FTP: 6 menit
  • menggunakan HTTP: 4 menit
  • menggunakan perangkat lunak pengunduh http bersamaan ( fdm): 1 menit

Jadi, 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.

BitQuestions
sumber
18
Ini sepertinya sangat anekdotal.
spenibus
5
@anecdotal ia memberikan angka (fakta dari penelitian) yang kurang anekdot daripada jawaban lain sejauh ini.
user1133275
Apakah kali direproduksi, setidaknya sekitar?
masterxilo
beberapa hari yang lalu saya mencoba mengunduh 90MB file dengan http, jaringan gagal pada 2MB. Tetapi dengan ftp (server yang sama, file yang sama, jaringan yang sama melalui hotspot seluler), unduhannya berhasil. Saya tidak tahu kenapa.
Rahmat Ihsan
1
ftp lebih cepat untuk file tunggal karena overhead yang lebih rendah. Jika pengujian Anda mendapatkan jawaban yang berbeda, coba klien lain (atau lebih kecil kemungkinannya, server lain). http tidak dapat mengunduh lebih cepat daripada kecepatan bit maks dan opsi paralel apa pun yang digunakan untuk mencoba melebihi yang akan memperkenalkan overhead protokol. Vs. Multi-file dapat ditransfer back-to-back dengan kecepatan jalur melalui FTP tanpa overhead protokol. Opsi paralel FTP menggunakan beberapa koneksi TCP yang biasanya melampaui koneksi titik tunggal (mis. SMB3.1 vSMB2.1, 3.x dapat menggunakan multi-koneksi).
Astara
27

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 rsyncatau BitTorrent, tetapi protokol tersebut tidak memiliki mindshare yang banyak, sedangkan HTTP adalah Everywhere ™)

Piskvor meninggalkan gedung
sumber
13

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.

brian-brazil
sumber
-5

Keduanya menggunakan TCP sebagai protokol transport, tetapi HTTP menggunakan koneksi persisten, yang membuat kinerja TCP lebih baik.

saleh
sumber