`

WebDAV 介绍

    博客分类:
  • CMS
阅读更多

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 客户端使用起来有这么方便吗?


ref:http://www.iteye.com/topic/6568
分享到:
评论

相关推荐

    Laravel开发-laravel-webdav

    ### WebDAV介绍 WebDAV是HTTP协议的扩展,它允许客户端不仅读取资源,还可以创建、修改和删除服务器上的文件。WebDAV协议的使用使得用户可以通过Web浏览器或者其他支持WebDAV的客户端来操作远程文件,就像操作本地...

    支持Webdav的客户端AnyClient

    1. **WebDAV介绍**: - WebDAV允许用户在Web服务器上编辑和管理文件,而无需将文件下载到本地然后再上传。这大大提高了远程协作的效率,特别适合团队合作和远程工作。 - WebDAV基于HTTP,这意味着它利用了互联网的...

    EZ Publish WebDAV详细介绍

    - **功能介绍**:用户可以通过兼容WebDAV的客户端连接到eZ Publish,从而实现浏览和管理站点的节点树。这些节点树将以文件系统的形式展示出来,包括目录和文件。 ##### 3. 连接eZ Publish WebDAV服务器 - **初次...

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

    以下步骤将详细介绍如何通过“网上邻居”功能来访问WebDAV服务器: 1. **打开“网上邻居”**: - 首先,在Windows操作系统中找到并打开“网上邻居”。这是一个用于查看局域网内共享资源的功能。 2. **映射网络...

    webDav客户端

    使用 Apache Jackrabbit 实现 WebDAV 客户端 ...本文首先介绍了 WebDAV、JCR 的概念,并介绍了如何使用 Jackrabbit 实现一个 WebDAV 的客户端,最后验证了该客户端在 WebDAV 服务器上各项基本功能的使用。

    webdav 资料,方法讲解的非常详细。

    以上内容详细介绍了WebDAV的核心概念和技术细节,包括资源属性的管理、集合的创建与检索、锁定机制以及HTTP方法的扩展等。通过这些功能,WebDAV提供了一个强大的平台,支持分布式环境下的文档管理和协同工作。

    resin-reference-3.0.13文档

    介绍了 Resin 支持的 WebDAV 功能及其配置方法。 ##### 2.5 Filter 库 (Filter Library) 提供了 Resin 内置的 Filter 库信息,包括可用的 Filter 类和功能。 #### 三、数据库 (Databases) 这部分详细介绍了 ...

    Go-webdavfs一个用于WEBDAV共享的LinuxFUSE文件系统

    Go-webdavfs是一个基于Go语言开发的文件系统,它实现了Linux FUSE(Filesystem in Userspace)接口,专门用于挂载WEBDAV共享。WEBDAV是一种通过HTTP/HTTPS协议进行文件操作的协议,允许用户对远程服务器上的文件进行...

    Windows 2021 server R2 的IIS上配置Webdav.docx

    本文主要介绍了在 Windows Server 2021 R2 的 IIS 上配置 WebDAV 的方法,包括启动 WebDAV 功能、建立 WebDAV 虚拟目录、WebDAV 客户端设置、WebDAV Redirector 和 WebDAV 的安全策略等。 一、启动 WebDAV 功能 ...

    eclipse opcms webdav

    1. **OpenCMS介绍** OpenCMS是一个开源的内容管理系统,它提供了一个灵活且可扩展的平台,用于创建、管理和发布Web内容。它支持多种数据库系统,并具有强大的模板引擎,能够创建出符合各种需求的网站设计。OpenCMS...

    精品软件工具--webdav+ssl安装工具软件,运行本软件可以帮你快速搭建一个支持ssl的webdav站点.zip

    以下将详细介绍WebDAV和SSL的相关知识以及该安装工具软件可能涉及的功能: 1. **WebDAV的原理与应用**: WebDAV允许用户直接在服务器上创建、修改和删除文件,而无需下载文件到本地再上传。这对于协作编辑文档、...

    WebDAV C++ Client-开源

    3. 文档:可能有README文件,介绍如何构建、安装和使用库;也可能有API文档,详细解释各个函数和类的作用。 4. 构建脚本:如Makefile或CMakeLists.txt,用于编译和链接源代码。 5. 测试用例:用于验证库的功能和性能...

    基于WebDav的Word文档在线审批设计与实现.docx

    #### 三、关键技术介绍 1. **WebDav技术**: - WebDav(Web Distributed Authoring and Versioning)是一种基于HTTP协议的标准扩展,用于实现Web上的文件创建、修改、删除等功能。 - 它支持锁定机制,可以在多...

    nswebdav:Nutstore(jianguoyun)webdav的python实现

    介绍 这是 webdav的python实现。 它实现了易于使用的高级界面,并支持同步版本和异步版本。 用法 使用异步版本时,软件包只能在python3.5或更高版本上运行,因为它使用了新关键字async并await异步支持。 要安装...

    golang写的半成品网盘 支持webdav 和网页文件浏览

    使用golang和net写的简易碗盘,具体介绍看文章 https://blog.csdn.net/qq_20081893/article/details/124795752 前端使用js自写的UI处理 目前可以简单上传文件和建立文件夹。 文件管理直接依托系统管理 适合交作业用

    dav:sabredav是用于PHP的CalDAV,CardDAV和WebDAV框架

    介绍 sabre / dav是用于PHP的最受欢迎的WebDAV框架。 使用它来创建WebDAV,CalDAV和CardDAV服务器。 完整的文档可以在网站上找到: 建置状态 分支 地位 最低PHP版本 掌握 PHP 7.1 3.1 PHP 5.5 3.0 PHP 5.4 ...

    将Exchange 2003与Webdav一起使用(发送,检索,附件,联系人,邮箱大小,标记为已读)

    本文将详细介绍如何将Exchange 2003与WebDAV集成,以实现发送邮件、检索邮件、处理附件、管理联系人以及调整邮箱大小等操作,并探讨如何利用C#、.NET框架(包括.NET 3.5)、Visual Studio(如VS2008)和WinForms等...

    Golang_GoA file listWebDAV program that supports multiple s.zip

    - **说明.txt**:这通常是一个包含项目介绍、使用指南或注意事项的文本文件。在安装或使用这个WebDAV程序之前,应该先查阅这个文件以获取详细信息。 - **alist_main.zip**:这可能是程序的主要代码或资源包,可能...

Global site tag (gtag.js) - Google Analytics