我必须开发一个Java应用程序,它必须读取网络上的一些文件,编辑它们并将它们放回去.
问题是我总是通过FTP协议(通过网络)进行文件操作.但是,我最近听说过基于HTTP的Webdav.
有没有人注意到它们之间的差异(就速度而言)?哪一个是最好的 ?如果FTP有利于他们,为什么他们"发明"Webdav呢?
Eug*_*its 74
WebDAV与FTP相比具有以下优势:
通过一个TCP连接工作,它更容易配置为绕过防火墙,NAT和代理.在FTP中,数据通道可能会导致正确的NAT设置出现问题.
再次由于一个TCP连接(可以是持久的),在传输许多小文件时,WebDAV比FTP快一点 - 不需要为每个文件建立数据连接.
GZIP压缩是HTTP的标准,但不适用于FTP(是的,FTP Z在FTP中提供,但它没有在任何标准中定义).
HTTP具有广泛的身份验证方法选择,这些方法未在FTP中定义.例如.NTLM和Kerberos身份验证在HTTP和FTP中很常见,除非您同时编写FTP的客户端和服务器端,否则很难获得对它们的适当支持.
WebDAV支持部分传输,并且在FTP部分上传是不可能的(即,您不能覆盖文件中间的块).
还有一件事需要考虑(取决于您是否控制服务器) - SFTP(SSH文件传输协议,以任何方式与FTP无关).SFTP比WebDAV功能更丰富,SFTP是访问远程文件系统的协议,而WebDAV的设计考虑了抽象(WebDAV用于"文档",而SFTP用于文件和目录).SFTP具有上面提到的WebDAV的所有好处,并且在管理员和开发人员中更受欢迎.
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下载/上传文件;)
取决于你想做什么。例如,FTP 上获取文件列表的开销为 7 个字节 (LIST -a),而 Webdav 的开销为 370 个字节 (PROPFIND + 207 Multi Status)。
对于发送一些文件,FTP 上的开销比 Webdav 上的开销低,等等。
如果您需要发送/获取大量小文件,FTP 将证明更快(使用多个连接来实现正确的管道传输,以及每个文件的 TCP 连接)。如果您要发送/接收大文件,这两种技术都是相同的,开销可以忽略不计。
请参阅: http ://www.philippeckel.com/files/syncany-heckel-thesis.pdf
| 归档时间: |
|
| 查看次数: |
88211 次 |
| 最近记录: |