哪种文件访问最好:Webdav还是FTP?

Dav*_*vid 65 ftp webdav

我必须开发一个Java应用程序,它必须读取网络上的一些文件,编辑它们并将它们放回去.

问题是我总是通过FTP协议(通过网络)进行文件操作.但是,我最近听说过基于HTTP的Webdav.

有没有人注意到它们之间的差异(就速度而言)?哪一个是最好的 ?如果FTP有利于他们,为什么他们"发明"Webdav呢?

Eug*_*its 74

WebDAV与FTP相比具有以下优势:

  1. 通过一个TCP连接工作,它更容易配置为绕过防火墙,NAT和代理.在FTP中,数据通道可能会导致正确的NAT设置出现问题.

  2. 再次由于一个TCP连接(可以是持久的),在传输许多小文件时,WebDAV比FTP快一点 - 不需要为每个文件建立数据连接.

  3. GZIP压缩是HTTP的标准,但不适用于FTP(是的,FTP Z在FTP中提供,但它没有在任何标准中定义).

  4. HTTP具有广泛的身份验证方法选择,这些方法未在FTP中定义.例如.NTLM和Kerberos身份验证在HTTP和FTP中很常见,除非您同时编写FTP的客户端和服务器端,否则很难获得对它们的适当支持.

  5. WebDAV支持部分传输,并且在FTP部分上传是不可能的(即,您不能覆盖文件中间的块).

还有一件事需要考虑(取决于您是否控制服务器) - SFTP(SSH文件传输协议,以任何方式与FTP无关).SFTP比WebDAV功能更丰富,SFTP是访问远程文件系统的协议,而WebDAV的设计考虑了抽象(WebDAV用于"文档",而SFTP用于文件和目录).SFTP具有上面提到的WebDAV的所有好处,并且在管理员和开发人员中更受欢迎.

  • 这些标头专门用于_fetching_,而不是上传资源.httpbis规范特别建议不要将范围与PUT请求结合使用,因为它可能会导致不希望的结果.来源:我是一个主要webdav服务器的作者,我每天都在浏览rfc. (3认同)
  • 很公平.请记住,因为现实世界的问题而添加了该段,并不是因为他们认为他们想要更具限制性. (2认同)

pyf*_*unc 27

回答问题 - Why did they "invent" Webdav

WebDAV代表Web Distributed Authoring and Versioning.

互联网并不意味着通过网址消耗资源(统一资源定位器)

但这就是它的结果.

因为HTTP具有强大的语义来获取资源(GET)和(HEAD).(POST)提供了语义操作数量的覆盖,而(DELETE)则被不信任所笼罩.HTTP缺乏一些其他特性,如多资源操作.

简而言之,它是读取协议而不是写入协议.

您可以通过FTP和许多机制上传它来使您的资源(URL)可用于获取.

WebDAV应该提供互联网的缺失故事:通过相同的HTTP机制支持创作资源.它扩展了它的语义,引入了新的HTTP VERBS.

它还引入了不仅可以读取,写入,修改和删除资源(uris)的机制,还可以查询资源的元属性并对其进行修改.这不是你之前不能做到的,而是通过后门机制完成的.

所以你看,它带来了你期望桌面上的文件操作到互联网资源的一些相同的机制.

以下是一些类比:

MKCOL     ----- make collection ----- similar to make folder
PROPGET   ---- get properties (meta?) --- same as get info or extended attributes on mac
PROPPATCH --- modify properties
COPY      ---- cp
MOVE      ---- mv
Run Code Online (Sandbox Code Playgroud)

我希望,我已经建立了WebDAV的一些崇高目标,作为HTTP的扩展,以支持互联网创作.不确定我们是否已经实现了它.

对于你的问题

您的应用程序是客户端,必须使用可用的机制 - 另一方面是FTP或WebDAV.如果WebDAV很好用,您可以使用它.但是需要一些时间来习惯语义.FTP具有有限的语义并且在简单性方面表现优异.如果您已经在使用它,请不要更改它.

哪个更快

这类似于回答,这是更快的HTTP还是FTP?

狡猾的说明,如果是这样的问题,我们就不会通过HTTP下载/上传文件;)

  • 有趣地概述了Web的理念以及WebDav的相关性.谢谢pyfunc. (2认同)

xry*_*669 5

取决于你想做什么。例如,FTP 上获取文件列表的开销为 7 个字节 (LIST -a),而 Webdav 的开销为 370 个字节 (PROPFIND + 207 Multi Status)。

对于发送一些文件,FTP 上的开销比 Webdav 上的开销低,等等。

如果您需要发送/获取大量小文件,FTP 将证明更快(使用多个连接来实现正确的管道传输,以及每个文件的 TCP 连接)。如果您要发送/接收大文件,这两种技术都是相同的,开销可以忽略不计。

请参阅: http ://www.philippeckel.com/files/syncany-heckel-thesis.pdf

  • WebDAV 可能使用较少的字节,但 ftp 需要更多的连接。如果延迟较低且数据包较小,则 ftp 可能会更快,但在大多数现代互联网上,带宽相当可观,而延迟不一定很大 - 在这里,(管道式)WebDAV 可能会优于 FTP。 (2认同)
  • 通过加密,在防火墙和 NAT 后面,WebDAV 运行的机会比 FTP(S) 高得多,因为 FTP 工作需要内容重写和嗅探...... (2认同)

Dur*_*n.H 5

由于DAVHTTP 上工作,因此您可以获得 FTP 无法提供的 HTTP 的所有好处。

例如:

强身份验证加密代理支持缓存

确实,您可以通过SSH获得其中的一些,但HTTP 基础设施的部署比 SSH 广泛得多。此外,SSH 没有 HTTP 具有的广泛补充工具、开发库和应用程序。

DAV 传输(嗯,HTTP 传输)也比 FTP 更有效。您可以通过单个 TCP 连接流水线化多个传输,而 FTP 需要为每个传输的文件(加上控制连接)建立一个新连接。

参考


小智 3

Webdav 在轻松通过防火墙方面比 FTP 有优势(没有单独的控制/数据套接字)。速度应该大致相同,因为两种协议都通过原始 tcp 套接字传输文件。