Dosyaları aktarmak için HTTP ve FTP'yi karşılaştırma


125

Dosyaları İnternet üzerinden aktarmak için birinin diğerine göre avantajları (veya sınırlamaları) nelerdir?

(Her iki protokolün de güvenli biçimlerinin farkındayım. Performans, güvenilirlik, dosya boyutu sınırlamaları vb. Açısından kişisel deneyimler yoluyla karşılaştırmalar duymak istiyorum.)

Yanıtlar:


99

İşte ikisinin performans karşılaştırması . HTTP, küçük dosyaların istek-yanıtı için daha duyarlıdır, ancak FTP, doğru şekilde ayarlandığında büyük dosyalar için daha iyi olabilir. FTP, genellikle daha hızlı kabul edilirdi. FTP, TCP durumunun yanı sıra bir kontrol kanalı ve durumun korunmasını gerektirir, ancak HTTP gerektirmez. Veriler FTP'de aktarılmaya başlamadan önce 6 paket aktarımı vardır, ancak HTTP'de yalnızca 4 paket vardır.

Doğru ayarlanmış bir TCP katmanının, uygulama katmanı protokolleri arasındaki farktan daha fazla etkisi olacağını düşünüyorum. Sun Blueprint Understanding Tuning TCP'nin ayrıntıları var.

İşte her protokolün bireysel özelliklerinin başka bir iyi karşılaştırması .


22
+1 iyi cevap. Sanırım FTP'nin günü geçti ve geçti, artık pek alakası yok. Aynı zamanda uygulanması gereken mutlak bir domuzdur .
skaffman

7
"Küçük" veya "büyük" dosyalar ne boyuttadır?
Urbycoz

Performans karşılaştırma P-HTTP, T / TCP ve S-TCB uygulanması beklenen kazanımlar bir analize link işaret eder. FTP'den nerede bahsedilmiyor? Ayrıca, uygun şekilde ayarlanmış bağlantı kopmuştur.
2013 1

@Trisped performans karşılaştırma bağlantısını okudunuz mu? FTP'ye 12 referans vardır ve ilk bölümde "HTTP protokolü başlangıçta FTP'nin verimsizliklerini azaltmak için geliştirilmiştir ..." der ve ardından açıklamaya devam eder. Ayrıca "TCP Ayarlamayı Anlamak" bağlantısını da güncelledim ... Görünüşe göre Oracle, tüm eski Sun Blueprint teknik raporlarını attı.
John Ellinwood

2
16 Ağustos 1996 ... gerçekten mi? 2009 cevabınızda bile, bunun mevcut durumu temsil etmesini bekleyemezdiniz. -1
user541686

29

Hem FTP hem de HTTP üzerinden bir dosya aktarımını karşılaştırdım:

  • iki çok iyi sunucu bağlantısı üzerinden
  • aynı 1GB .zip dosyasını kullanarak
  • aynı ağ koşullarında (birbiri ardına test edilmiştir)

Sonuç:

  • FTP kullanarak: 6 dakika
  • HTTP kullanma: 4 dakika
  • eşzamanlı bir http indirme yazılımı kullanarak ( fdm): 1 dakika

Yani, temelde "gerçek hayat" durumunda:

1) HTTP, büyük bir dosya indirirken FTP'den daha hızlıdır.

2) HTTP, paralel yığın indirmeyi kullanabilir, bu da ağ koşullarına bağlı olarak FTP'den 6 kat daha hızlı olmasını sağlar.


18
Bu çok anekdot gibi görünüyor.
spenibus

5
@anecdotal, şimdiye kadarki diğer cevaplardan daha az anekdot olan sayılar (araştırmadan elde edilen gerçekler) sağladı.
user1133275

Zamanlar, en azından yaklaşık olarak tekrarlanabilir mi?
masterxilo

Birkaç gün önce http ile 90MB dosyaları indirmeye çalıştım, ağ 2MB'de başarısız oldu. Ancak ftp (aynı sunucu, aynı dosya, mobil erişim noktası üzerinden aynı ağ) ile indirme başarısı. Neden bilmiyorum
Rahmat İhsan

1
Daha düşük ek yük nedeniyle tek dosyalar için ftp daha hızlıdır. Testinizin farklı bir cevabı varsa, başka bir istemciyi (veya daha az olasılıkla başka bir sunucuyu) deneyin. http, maksimum bit hızından daha hızlı indirilemez ve bunu aşmaya çalışmak için kullanılan herhangi bir paralel seçenek, protokol ek yüküne neden olur. Vs. Çoklu dosyalar, protokol ek yükü olmaksızın FTP üzerinden hat hızlarında arka arkaya aktarılabilir. FTP'nin paralel seçeneği, genellikle tek noktalı bağlantıları aşan birden çok TCP bağlantısı kullanır (örn. SMB3.1 vSMB2.1, 3.x çoklu bağlantı kullanabilir).
Astara

27

Birçok güvenlik duvarı, 80 veya 443 numaralı bağlantı noktalarına (http & https) olmayan giden bağlantıları keser; hatta bazıları HTTP (S) olmayan bağlantı noktalarına bağlantıları keser. FTP'ye, aktif / PASV modlarından bahsetmemek için izin verilebilir veya verilmeyebilir.

Ayrıca, HTTP / 1.1 çok daha iyi kısmi isteklere ("yalnızca 123456 baytından dosyanın sonuna gönder"), koşullu isteklere ve önbelleğe almaya ("yalnızca içerik değiştirilirse / son değiştirilme tarihi değiştirilirse gönder") ve içerik sıkıştırmaya izin verir (gzip).

HTTP'nin bir proxy aracılığıyla kullanılması çok daha kolaydır.

Anekdot niteliğindeki kanıtımdan, HTTP'nin kesilen / yavaş / kesintili bağlantılarla çalışması daha kolaydır; örneğin, aktarımı başlatmadan (yeniden) önce bir oturum açma oturumunun (yeniden) oluşturulması gerekli değildir.

OTOH, HTTP durumsuzdur, bu nedenle kimlik doğrulaması yapmanız ve "kimin, ne zaman ne yaptığını" kendinizin izini sürmeniz gerekir.

Fark ettiğim hızdaki tek fark, çok sayıda küçük dosyanın aktarılmasıdır: ardışık düzene sahip HTTP daha hızlıdır (özellikle yüksek gecikmeli ağlarda fark edilen gidiş-dönüşleri azaltır).

Not bu HTTP / 2 FTP protokolü yıllardır hiçbir güncellemeyi görmemiştir oysa teklifler daha optimizasyonlar, (FTP'ye ve hatta uzantıları kullanıcılar tarafından önemsiz alımını var). Dolayısıyla, dosyaları bir zaman makinesi aracılığıyla aktarmadığınız sürece, HTTP kazanmış gibi görünüyor.

(Teğetsel olarak: rsyncveya BitTorrent gibi dosya aktarımı için daha uygun protokoller vardır , ancak bunlar çok fazla fikir paylaşımına sahip değildir, oysa HTTP Her Yerdedir ™)


13

Göz önünde bulundurulması gereken bir nokta, FTP'nin standart olmayan bağlantı noktalarını kullanabilmesidir, bu da güvenlik duvarlarından geçmeyi zorlaştırabilir (özellikle SSL kullanıyorsanız). HTTP tipik olarak bilinen bir bağlantı noktasındadır, bu nedenle bu nadiren bir sorundur.

FTP kullanmaya karar verirseniz, Aktif ve Pasif FTP'yi okuduğunuzdan emin olun .

Performans açısından, günün sonunda, ikisi de dosyaları doğrudan TCP bağlantılarının altına püskürtüyorlar, bu yüzden yaklaşık olarak aynı olmalıdır.


-5

Her ikisi de taşıma protokolü olarak TCP'yi kullanır, ancak HTTP, TCP'nin performansını daha iyi hale getiren kalıcı bir bağlantı kullanır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.