`
icarusliu
  • 浏览: 235372 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我来谈一谈 WebDAV

阅读更多

原文:http://www.iteye.com/topic/6568

 

WebDAV(Web-based Distributed Authoring and Versioning)是基于 HTTP 1.1 的一个通信协议。它为 HTTP 1.1 添加了一些扩展(就是在 GET、POST、HEAD 等几个 HTTP 标准方法以外添加了一些新的方法),使得应用程序可以直接将文件写到 Web Server 上,并且在写文件时候可以对文件加锁,写完后对文件解锁,还可以支持对文件所做的版本控制。这个协议的出现极大地增加了 Web 作为一种创作媒体对于我们的价值。基于 WebDAV 可以实现一个功能强大的内容管理系统或者配置管理系统。 
我这里不想详细介绍 WebDAV 的协议,感兴趣的可以在这里找到相关的资料: 
http://www.webdav.org 
其中首先应该看的是这份 WebDAV FAQ: 
http://www.webdav.org/other/faq.html 

WebDAV 本身是一个类似于 HTTP 的通信协议(IETF RFC 2518)。它与 HTTP  类似,需要实现服务器和客户端两部分软件。目前 WebDAV 已经有了大量相关的软件实现。 
在这里是一些与 WebDAV 相关的软件项目: 
http://www.webdav.org/projects/ 

在这些项目中,我们最感兴趣的当然是那些用 Java 实现的开源项目,Slide 是其中最重要的一个项目。Slide 是 Jakarta 项目的一个子项目(又是 Apache 山头的),提供了一套 WebDAV 的服务器端和客户端的开发库和 API,目前已经出到了 2.0 版。 
http://jakarta.apache.org/slide/ 
在这里下载最新的 Slide 2.0 的 Binary 包。 
http://jakarta.apache.org/site/binindex.cgi 
Slide 分成服务器端和客户端两部分: 
服务器端: 
http://apache.linuxforum.net/dist/jakarta/slide/binaries/jakarta-slide-server-bin-2.0.zip 
客户端: 
http://apache.linuxforum.net/dist/jakarta/slide/binaries/jakarta-slide-webdavclient-bin-2.0.zip 

我先讲讲服务器端如何配置: 
解压缩,假设在 D:\tmp\jakarta-slide-server-2.0 下,你会在 
D:\tmp\jakarta-slide-server-2.0\slide\webapp\ 
下找到两个 war 文件: 
slide.war:Slide 服务器端配置,用 Servlet 实现。 
slide-doc.war:Slide 文档。 

把这两个 war 文件 copy 到你的 Web Container(Tomcat、Jetty、Resin、etc.) 的部署目录(一般是 webapps 目录)下,然后重新启动 Web Container。 

在我现在写的这个文档中服务器端的配置就是这么简单。 

再讲讲在客户端如何配置。 
WebDAV 有非常多的客户端,用 Slide 客户端的库可以非常容易地写出一个 WebDAV 客户端程序。感兴趣的可以看看这篇文档: 
http://www.onjava.com/lpt/a/4387 

我主要讲讲如何用 Windows 2000/XP 自带的 Web Folder 功能来访问 Web 文件夹。 
Windows 2000/XP 安装后已经具备访问基于 WebDAV 协议的 Web 文件夹的功能,而且可以把 Web 文件夹映射为一个本地文件夹,支持拖放、拷贝/粘贴等等功能,使用起来非常方便。 
在 Windows 2000/XP 中添加 Web 文件夹的方法是: 
打开“网上邻居”,添加网上邻居,在“请键入网上邻居的位置”中输入 Web 文件夹的 URL,例如我刚才用 Slide 配置好的 WebDAV 服务器在: 
http://localhost:8000/slide/ 
然后按照向导的提示继续做就可以了,非常的简单。 
配置好了以后你就可以把这个 Web 文件夹当作本地文件夹一样使用了。拖几个文件进去试试吧。关于上述 Web Folder 的配置可以参考这些文档: 
http://chapters.marssociety.org/webdav/ 
(几个闲着没事孜孜不倦地研究人类如何移民火星的酷哥写的文档) 
还有 M$ 网站上的相关文档: 
http://www.microsoft.com/windowsxp/home/using/productdoc/en/default.asp?url=/windowsxp/home/using/productdoc/en/using_webfolders_for_file_transfer.asp 

M$ 的很多产品都内置有 WebDAV 的支持。例如:Office 2000、IE 5/6、Exchange Server、Frontpage。我配置好 WebDAV 服务器后,当我访问这个 URL 
http://localhost:8000/slide/files/23.doc 
时,Word 2000 可以识别出 Web 服务器支持 WebDAV 协议。于是 Word 2000 可以直接编辑服务器上的这个文档,编辑完后可以直接保存在 Web 服务器上。这个是不是比你习惯的 download->modify->upload 要方便的多? 

WebDAV 还有很多话题,比如 WebDAV 完全可以取代 FTP。WebDAV 至少在以下几个方面对 FTP 具有压倒性优势: 
1、FTP 需要申请操作系统帐号。WebDAV 不需要申请任何操作系统帐号,它使用一套自己定义的安全完善的身份验证机制。 
2、FTP 的所有数据(包括登录信息)全部使用明文传送,加密必须要自己来实现,例如:可以手工用 GPG 来做这件事,但是毕竟还是不方便。用 WebDAV 就可以使用 HTTPS 来传输数据,加密解密的操作完全是在低层自动完成的。 
3、FTP 传输数据的传输效率比较低,每传送一个文件需要打开一个新的 TCP 连接,而 WebDAV 传输所有文件只需要一个 TCP 连接。 
4、FTP 不象 HTTP 那样容易穿越防火墙,在广域网的应用范围比 HTTP 要小的多。而 WebDAV 因为是基于 HTTP 的,所以具有 HTTP 的所有优点。 
5、FTP 客户端工具没有 WebDAV 客户端工具使用方便。你刚才已经看到 WebDAV 服务器配置好后,通过 Windows 2000/XP 的 Web Folder 方式访问 Web 文件夹就和访问本地文件夹没有多少区别。如果应用程序支持 WebDAV 协议(例如 Word 2000),就可以直接打开 Web 文件夹中的文件并且编辑,然后直接保存在原先的 Web 文件夹中。这个用起来简直就和 Samba 完全一样。你知道哪一个 FTP 客户端使用起来有这么方便吗? 

关于 WebDAV 更多的话题,以后慢慢再说吧。 

Just for fun!

分享到:
评论

相关推荐

    webdav客户端中文版

    RaiDrive是一个流行的WebDAV驱动程序,它将WebDAV服务器映射为本地驱动器,使用户能够直接通过文件资源管理器进行访问,简化了操作步骤,提升了效率。 总之,WebDAV客户端如RaiDrive中文版,通过提供直观的界面和...

    android webdav工具类

    在Android中,开发者需要创建一个工具类来封装WebDAV相关的操作,如连接、认证、文件上传和下载。这个工具类通常会使用Apache的 HttpClient 或者OkHttp库来实现对WebDAV服务器的通信。 3. **Jackrabbit**: ...

    IIS webdav扫描器

    【IIS WebDAV扫描器】是一种专门针对微软Internet Information Services (IIS) Web服务器上WebDAV服务的安全检测工具。WebDAV(Web-based Distributed Authoring and Versioning)是HTTP协议的一个扩展,允许用户...

    FileBackup-WebDav 1.8.5 绿色版_结合你的WebDav进行备份.rar

    《FileBackup-WebDav 1.8.5:基于WebDav的高效备份解决方案》 FileBackup-WebDav 1.8.5是一款专为用户设计的绿色版...对于那些寻求可靠且易于管理的备份工具的人来说,FileBackup-WebDav无疑是一个值得考虑的选择。

    webdav.net

    WebDAV(Web Distributed Authoring and Versioning)是一种基于HTTP协议的协议,它扩展了HTTP,使得用户可以进行创建、修改...开发者可以利用这些类来实现自定义的WebDAV服务器或者扩展已有的服务,以满足特定的需求。

    webdav实现office在线编辑

    总的来说,通过IIS的WebDAV功能,我们可以创建一个安全且便捷的在线编辑环境,允许用户远程编辑和保存Word文档,而无需依赖特定的在线编辑工具。然而,为了确保系统的稳定性和数据完整性,建议始终监控并发访问策略...

    tomcat中间件禁用webdav方法

    tomcat中间件禁用webdav方法 通过本方法,可以完成所有运行于该tomcat之上的java项目均拦截webdav方法。

    webdav安卓包.zip

    总的来说,"webdav安卓包.zip"包含了一个用于Android设备的WebDAV客户端的开发资源。通过解析这个包,开发者可以了解如何在Android上实现WebDAV功能,如何配置服务器,以及如何与群晖NAS等设备进行集成,为用户提供...

    WebDav_Client.zip

    可以通过下面列表中描述的任意一种 Microsoft 产品或通过其他任意的支持行业标准 WebDAV 协议的客户端来访问 WebDAV 发布目录。 ·Windows XP 通过“添加网上邻居向导”与 WebDAV 服务器连接,并显示 WebDAV 目录中...

    webdav模块

    apache webdav

    Qt实现WebDav请求

    Qt实现WebDav请求,基于QNetworkAccessManager、QNetworkReply、QNetworkRequest调用qt自带得sendCustomRequest(const QNetworkRequest &request, const QByteArray &verb, QHttpMultiPart *multiPart)接口实现

    Laravel开发-laravel-webdav-method

    然后,你可以创建一个路由来处理WebDAV请求。在`app/Http/routes.php`文件中,添加如下代码: ```php Route::group(['middleware' => ['web']], function () { Route::webdav('/webdav', '\Barryvdh\WebDAV\...

    Laravel开发-laravel-webdav

    4. **中间件设置**:为了保护WebDAV接口,可以设置一个中间件来处理认证和授权。你可以使用Laravel的内置中间件或者自定义一个。 5. **路由配置**:在`routes/web.php`或`routes/api.php`中,定义WebDAV的路由。...

    WebDAV操作例子

    总结来说,"WebDAV操作例子"提供了一个学习和实践WebDAV技术的起点。通过了解和应用WebDAV协议,开发者可以构建更加高效、协作的网络文件系统,而Apache的mod_dav模块则为实现这一目标提供了强大的工具。学习和掌握...

    在IIS7中安装和配置WebDAV

    在IIS7中,WebDAV是作为一个扩展模块来安装的。用户可以通过添加/删除程序项中的“WebDAV Publishing”来安装WebDAV模块。 3. WebDAV的配置 在IIS7中,WebDAV的配置可以通过IIS管理器来完成。用户可以在IIS管理器...

    windows linux webdav 挂载

    在Windows和Linux系统中,可以通过特定的工具来实现对WebDAV服务器的挂载,以便像操作本地文件系统一样操作远程文件。 ### Windows系统的挂载步骤 1. **安装依赖软件**: - 首先,你需要下载并安装`rclone`和`...

    webdav-aliyundriver-2.4.0.zip

    "webdav-aliyundriver-2.4.0.zip" 是一个用于将阿里云盘映射为本地网络驱动器的软件包,通过这个驱动程序,用户可以像操作本地文件系统一样操作阿里云盘中的文件,无需频繁下载和上传,提高工作效率。 该驱动程序的...

    如何通过“网上邻居”访问WebDAV服务器

    - 一旦连接成功,用户就可以通过简单的鼠标操作(如右键菜单中的“复制”、“粘贴”、“删除”、“创建文件夹”等)来管理WebDAV服务器上的文件,就像操作本地文件一样便捷。 #### 注意事项 - 在输入服务器地址时...

    Python-WsgiDAV是一个用Python开发的通用WebDAV服务器

    这对于处理敏感数据的WebDAV服务器来说至关重要,因为用户可能需要上传和下载包含个人信息或者商业机密的文件。 WsgiDAV的特性还包括: 1. **身份验证**:支持多种身份验证机制,如基本认证、NTLM、Kerberos等,以...

Global site tag (gtag.js) - Google Analytics