Ich muss eine Java-Anwendung entwickeln, die einige Dateien im Netzwerk lesen, bearbeiten und zurücklegen muss.
Das Problem ist, dass ich immer (über das Netzwerk) Dateivorgänge über das FTP-Protokoll ausgeführt habe. Aber ich habe kürzlich von Webdav gehört, das HTTP-basiert ist.
Hat jemand einen Unterschied (in Bezug auf die Geschwindigkeit) zwischen ihnen bemerkt? Welches ist das beste ? Warum haben sie Webdav "erfunden", wenn das FTP dafür gut ist?
Antworten:
WebDAV bietet gegenüber FTP folgende Vorteile:
Durch die Arbeit über eine TCP-Verbindung ist es einfacher, diese so zu konfigurieren, dass Firewalls, NATs und Proxys umgangen werden. In FTP kann der Datenkanal Probleme mit der richtigen NAT-Einrichtung verursachen.
Aufgrund einer TCP-Verbindung, die dauerhaft sein kann, wäre WebDAV beim Übertragen vieler kleiner Dateien etwas schneller als FTP - es ist nicht erforderlich, für jede Datei eine Datenverbindung herzustellen.
Die GZIP-Komprimierung ist ein Standard für HTTP, jedoch nicht für FTP (ja, MODE Z wird in FTP angeboten, ist jedoch in keinem Standard definiert).
HTTP bietet eine große Auswahl an Authentifizierungsmethoden, die in FTP nicht definiert sind. Z.B. Die NTLM- und Kerberos-Authentifizierung ist in HTTP üblich, und in FTP ist es schwierig, eine angemessene Unterstützung für sie zu erhalten, es sei denn, Sie schreiben sowohl die Client- als auch die Serverseite von FTP.
WebDAV unterstützt Teilübertragungen und in FTP sind Teil-Uploads nicht möglich (dh Sie können einen Block in der Mitte der Datei nicht überschreiben).
Es gibt noch eine weitere Sache zu beachten (abhängig davon, ob Sie den Server steuern) - SFTP (SSH File Transfer Protocol, in keiner Weise mit FTP verbunden). SFTP ist funktionsreicher als WebDAV und SFTP ist ein Protokoll für den Zugriff auf entfernte Dateisysteme, während WebDAV mit Blick auf die Abstraktion entwickelt wurde (WebDAV war für "Dokumente", SFTP für Dateien und Verzeichnisse). SFTP bietet alle oben genannten Vorteile für WebDAV und ist sowohl bei Administratoren als auch bei Entwicklern beliebter.
quelle
Antwort auf Frage -
Why did they "invent" Webdav
WebDAV steht für
Web Distributed Authoring and Versioning
.Das Internet war einfach nicht für den Verbrauch von Ressourcen über URLs gedacht ( Uniform Resource Locator ).
Aber so wurde es.
Weil HTTP eine starke Semantik zum Abrufen von Ressourcen (GET) und (HEAD) hatte. (POST) deckte die Anzahl der semantischen Operationen ab, während (DELETE) in Misstrauen gehüllt war. HTTP fehlten einige andere Eigenschaften wie Multi-Resource-Operationen.
Kurz gesagt, es war ein Leseprotokoll und kein Schreibprotokoll.
Sie würden Ihre Ressourcen (URLs) zum Abrufen verfügbar machen, indem Sie sie über FTP und eine Vielzahl von Mechanismen hochladen.
WebDAV sollte die fehlende Geschichte des Internets liefern: Unterstützung für das Authoring von Ressourcen über denselben HTTP-Mechanismus. Es erweiterte seine Semantik und führte neues HTTP VERBS ein.
Außerdem wurde der Mechanismus eingeführt, mit dem eine Ressource (uris) nicht nur gelesen, geschrieben, geändert und gelöscht werden kann, sondern auch die Meta-Eigenschaften der Ressource abgefragt und geändert werden können. Es ist nicht so, dass man es vorher nicht machen konnte, aber es wurde durch einen Hintertürmechanismus gemacht.
Sie sehen, es hat einige der gleichen Mechanismen, die Sie bei Dateivorgängen auf dem Desktop erwarten, auf Internetressourcen übertragen.
Es folgen einige Analogien:
Ich hoffe, ich habe einige der noblen Ziele von WebDAV als Erweiterung von HTTP zur Unterstützung des Internet-Authoring festgelegt. Ich bin mir nicht sicher, ob wir es geschafft haben.
Für deine Frage
Ihre Anwendung ist ein Client und muss mit dem verfügbaren Mechanismus auskommen - FTP oder WebDAV auf der anderen Seite. Wenn WebDAV großartig verfügbar ist, können Sie es verwenden. Aber es wird einige Zeit dauern, bis man sich an die Semantik gewöhnt hat. FTP hat eine begrenzte Semantik und zeichnet sich durch Einfachheit aus. Wenn Sie es bereits verwenden, ändern Sie es nicht.
Welche ist schneller
Das ist vergleichbar mit Antworten, was ist schnelleres HTTP oder FTP?
Wenn es ein solches Problem wäre, hätten wir keine Dateien über HTTP heruntergeladen / hochgeladen;)
quelle
Kommt darauf an, was du machen willst. Beispielsweise beträgt der Overhead auf FTP zum Abrufen einer Liste von Dateien 7 Byte (LIST -a), während er mit Webdav 370 Byte beträgt (PROPFIND + 207 Multi Status).
Beim Senden einer Datei ist der Overhead bei FTP geringer als bei Webdav usw.
Wenn Sie viele kleine Dateien senden / abrufen müssen, ist FTP schneller (Verwendung mehrerer Verbindungen für korrektes Pipelining und TCP-Verbindung pro Datei). Wenn Sie große Dateien senden / empfangen, ist dies bei beiden Technologien gleich. Der Overhead ist vernachlässigbar.
Weitere Informationen finden Sie unter: http://www.philippheckel.com/files/syncany-heckel-thesis.pdf
quelle
Da DAV über HTTP funktioniert , erhalten Sie alle Vorteile von HTTP, die FTP nicht bieten kann.
Zum Beispiel:
Es ist wahr, dass Sie einen Teil davon über SSH erhalten können , aber die HTTP-Infrastruktur ist viel weiter verbreitet als SSH. Darüber hinaus verfügt SSH nicht über die breite Palette an Tools, Entwicklungsbibliotheken und Anwendungen, die HTTP bietet.
Referenz
quelle
Änderungszeit der Datei:
Es scheint einen Unterschied zu geben, wie ftp und webdav mit der Änderungszeit von Dateien umgehen.
Es scheint, dass es in ftp einen 'Befehl' gibt, um diese Zeit beizubehalten (mehrere ftp-Clients und -Server behaupten, dies zu tun), während webdav, wenn ich mich richtig erinnere, das Änderungsdatum der Datei abrufen kann, es aber beim Hochladen nicht festlegen kann.
owncloud-Client und einige proprietäre Webdav-Clients scheinen eine Problemumgehung zu haben, aber das funktioniert nur in ihrer Software
Je nach Verwendung ist dies ein starkes Argument für FTP. Ich möchte nicht, dass meine Dateien das Änderungsdatum == Upload-Datum haben. Nach einem späteren Download kann ich nicht anhand des Datums feststellen, welche Version der Datei ich habe.
quelle
Webdav bietet gegenüber FTP Vorteile hinsichtlich der einfachen Weitergabe von Firewalls (keine separaten Steuerungs- / Daten-Sockets). Die Geschwindigkeit sollte ungefähr gleich sein, da beide Protokolle die Datei über einen rohen TCP-Socket übertragen.
quelle