哪个文件访问最好:Webdav或FTP?
我必须开发一个Java应用程序,它必须读取网络上的一些文件,编辑它们并将它们放回去。
问题是我总是通过FTP协议(通过网络)执行文件操作。 但是,我最近听说过基于HTTP的Webdav。
有没有人注意到他们之间的差异(在速度方面)? 哪一个是最好的 ? 为什么他们“发明”Webdav,如果FTP是好的?
WebDAV比FTP具有以下优点:
通过一个TCP连接工作,配置它可以轻松绕过防火墙,NAT和代理。 在FTP中,数据通道可能会导致正确的NAT设置问题。
再次,由于一个TCP连接可以是持久的,所以在传输很多小文件时,WebDAV比FTP快一点 - 不需要为每个文件建立一个数据连接。
GZIP压缩是HTTP的标准,但不适用于FTP(是的,MODE Z在FTP中提供,但它没有在任何标准中定义)。
HTTP具有多种在FTP中未定义的身份验证方法。 例如。 NTLM和Kerberos身份验证在HTTP和FTP中很常见,除非您编写FTP的客户端和服务器端,否则很难获得适当的支持。
WebDAV支持部分传输,在FTP中,部分上传是不可能的(即不能覆盖文件中间的块)。
还有一件事要考虑(取决于你是否控制服务器) - SFTP(SSH文件传输协议,不以任何方式与FTP相关)。 SFTP比WebDAV功能更丰富,SFTP是访问远程文件系统的协议,而WebDAV的设计考虑了抽象(WebDAV用于“文档”,而SFTP用于文件和目录)。 SFTP具有上述WebDAV的所有优点,并且在管理员和开发人员中更受欢迎。
回答问题 - 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
我希望,我已经确立了WebDAV的一些崇高目标作为HTTP的延伸,以支持互联网创作。 不知道我们是否已经实现它。
为你的问题
您的应用程序是一个客户端,并且必须与可用的机制 - 另一方面的FTP或WebDAV相关。 如果WebDAV很好用,您可以使用它。 但是习惯语义需要一些时间。 FTP具有有限的语义,并且在简单性方面更胜一筹。 如果您已经在使用它,请不要更改它。
哪个更快
这类似于回答,这是更快的HTTP或FTP?
狡猾的说,如果这是一个问题,我们不会通过HTTP下载/上传文件;)
由于DAV通过HTTP工作 ,您可以获得FTP无法提供的所有HTTP优势。
例如:
强大的身份验证,加密,代理支持和缓存。
的确,您可以通过SSH获得一些这方面的知识,但HTTP基础结构的部署要比SSH更广泛。 而且,SSH没有HTTP所具有的丰富的工具,开发库和应用程序。
DAV传输(以及HTTP传输)也比FTP更高效。 您可以通过单个TCP连接传输多个传输,而FTP需要为每个传输的文件(加上控制连接)建立一个新连接。
参考
链接地址: http://www.djcxy.com/p/61361.html