wake-up-neo.com

Vergleich von HTTP und FTP zum Übertragen von Dateien

Was sind die Vorteile (oder Einschränkungen) der einen gegenüber der anderen beim Übertragen von Dateien über das Internet?

(Mir sind sichere Formen beider Protokolle bekannt. Ich möchte Vergleiche anhand persönlicher Erfahrungen in Bezug auf Leistung, Zuverlässigkeit, Dateigrößenbeschränkungen usw. hören.)

112
Mystic

Hier ist ein Leistungsvergleich der beiden. HTTP ist reaktionsschneller bei Anfragen und Antworten auf kleine Dateien, aber FTP ist möglicherweise besser für große Dateien, wenn es richtig eingestellt ist. Früher galt FTP allgemein als schneller. FTP erfordert, dass ein Steuerkanal und ein Status neben dem TCP -Status beibehalten werden, HTTP jedoch nicht. Es gibt 6 Paketübertragungen, bevor die Datenübertragung in FTP beginnt, in HTTP jedoch nur 4.

Ich denke, eine richtig eingestellte TCP Ebene würde mehr Einfluss auf die Geschwindigkeit haben als der Unterschied zwischen den Protokollen der Anwendungsebene. Die Sun-Blaupause Grundlegendes zur Einstellung von TCP enthält Details.

Hier ist ein weiteres guter Vergleich der einzelnen Merkmale jedes Protokolls.

89
John Ellinwood

Ich habe gerade eine Dateiübertragung über FTP und HTTP verglichen:

  • über zwei sehr gute Serververbindungen
  • verwenden derselben 1-GB-ZIP-Datei
  • unter den gleichen Netzwerkbedingungen (nacheinander getestet)

Das Ergebnis:

  • per FTP: 6 Minuten
  • über HTTP: 4 Minuten
  • unter Verwendung einer gleichzeitigen http-Downloader-Software ( fdm ): 1 Minute

Also, im Grunde genommen unter einer "realen" Situation:

1) HTTP ist schneller als FTP, wenn eine große Datei heruntergeladen wird.

2) HTTP kann einen parallelen Block-Download verwenden, der je nach Netzwerkbedingungen 6-mal schneller als FTP ist.

27
BitQuestions

Viele Firewalls beenden ausgehende Verbindungen, die nicht zu den Ports 80 oder 443 (http und https) führen. Einige unterbrechen sogar Verbindungen zu den Ports, die nicht HTTP (S) sind. FTP kann erlaubt sein oder nicht, ganz zu schweigen von den aktiven/PASV-Modi.

Außerdem ermöglicht HTTP/1.1 viel bessere Teilanforderungen ("nur von Byte 123456 bis zum Ende der Datei senden"), bedingte Anforderungen und Zwischenspeicherung ("nur senden, wenn sich der Inhalt geändert hat/wenn sich das Datum zuletzt geändert hat") und Inhaltskomprimierung (gzip).

HTTP ist über einen Proxy viel einfacher zu verwenden.

Meinem anekdotischen Beweis zufolge ist es mit HTTP einfacher, mit unterbrochenen/langsamen/schuppigen Verbindungen zu arbeiten. z.B. Es ist nicht erforderlich, eine Anmeldesitzung (erneut) einzurichten, bevor die Übertragung (erneut) initiiert wird.

OTOH, HTTP ist zustandslos, daher müssten Sie die Authentifizierung durchführen und eine Liste der Personen erstellen, die wann was getan haben.

Der einzige Geschwindigkeitsunterschied, den ich bemerkt habe, ist das Übertragen vieler kleiner Dateien: HTTP mit Pipelining ist schneller (reduziert Roundtrips, insbesondere in Netzwerken mit hoher Latenz).

Beachten Sie, dass HTTP/2 noch mehr Optimierungen bietet, wohingegen das FTP-Protokoll seit Jahrzehnten keine Aktualisierungen mehr aufweist (und selbst Erweiterungen von FTP nur unwesentlich von den Benutzern akzeptiert werden). Wenn Sie also keine Dateien über eine Zeitmaschine übertragen, scheint HTTP gewonnen zu haben.

(Tangential: Es gibt Protokolle, die besser für die Dateiübertragung geeignet sind, wie rsync oder BitTorrent, aber diese haben nicht so viel Mindshare, während HTTP Everywhere ™ ist.)

25
Piskvor

Eine Überlegung ist, dass FTP nicht standardmäßige Ports verwenden kann, was das Durchsuchen von Firewalls erschwert (insbesondere, wenn Sie SSL verwenden). HTTP befindet sich normalerweise an einem bekannten Port, daher ist dies selten ein Problem.

Wenn Sie sich für FTP entscheiden, lesen Sie unbedingt Active and Passive FTP .

In Bezug auf die Leistung, am Ende des Tages spucken beide Dateien direkt aus TCP Verbindungen sollten also ungefähr gleich sein.

12
brian-brazil