WebDAV协议

简介

WebDAV(Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

IETF WebDAV 工作组的目标是,设计一个协议,它提供基于标准的论坛中任何分布式创作工具需要的功能。 当前的 WebDAV 规范 (IETF RFC 2518) 解决协作式创作工具的三个主要问题:

  • 改写保护。HTTP 1.1 无法确保客户端可以保护资源,并且可以在其他客户端同时编辑它们的情况下进行更改。 使用 WebDAV,可以通过多种方式来锁定资源,以便让其他客户端知道您对所讨论的资源感兴趣,或者防止其他客户端访问该资源。
  • 资源管理。HTTP 只能直接访问单个资源。 WebDAV 提供一种更有效地组织数据的方法。 WebDAV 引入了可包含资源 的集合(类似于文件系统文件夹)概念。 通过 WebDAV 进行的资源管理包括如下功能:创建、移动、复制和删除集合,以及集合中的资源或文件。
  • 文档属性。不同类型的数据具有唯一的属性,这有助于描述数据。 例如,在电子邮件中,这些属性可能是发件人的姓名和接收邮件的时间。 在协作文档中,这些属性可能是文档原始作者的姓名和最后一个编辑者的姓名。 因为人们使用的文档类型各不相同,所以可能的属性类型列表也变得无限大。 XML 是 WebDAV 所需的一种可扩展通讯工具。

WebDAV 允许客户端进行下列操作

处理服务器上 WebDAV 发布目录中的资源。使用此功能,其优点例如:

  • 1.具有正确权限的用户可以在 WebDAV目录中复制和移动文件。
  • 2.修改与某些资源相关联的属性。例如,用户可写入并检索文件的属性信息。
  • 3.锁定并解锁资源以便多个用户可同时读取一个文件。但每次只能有一个人修改文件。
  • 4.搜索 WebDAV 目录中的文件的内容和属性。

WebDAV 客户端

可以通过下面列表中描述的任意一种 Microsoft 产品或通过其他任意的支持行业标准 WebDAV 协议的客户端来访问 WebDAV 发布目录。

  • Windows XP 通过“添加网上邻居向导”与 WebDAV 服务器连接,并显示 WebDAV 目录中的内容,如同它是本地计算机上同一文件系统的组成部分。连接完成之后,就可以拖放文件、检索和修改文件属性以及执行许多其他文件系统任务。
  • Internet Explorer 5.0 与 WebDAV 目录连接,使您可以执行通过 Windows XP 所能执行的文件系统任务。
  • Office 2000 通过其中包含的任意应用程序创建、发布、编辑并直接将文档保存到 WebDAV 目录中。
  • 另外,某些第三方Windows程序可连接到WebDAV 服务器,显示WebDAV 目录内容,对其文件进行重命名、删除、上传及下载操作。
  • 某些Android应用程序可实现在Android 客户端访问WebDAV 服务。

请求格式

HTTP 1.1(请参阅 IETF RFC 2068)提供一组可供客户端与服务器通讯的方法,并指定响应(从服务器返回发出请求的客户端)的格式。 WebDAV 完全采用此规范中的所有方法,扩展其中的一些方法,并引入了其他可提供所描述功能的方法。 WebDAV 中使用的方法包括:

1.Options、Head 和 Trace
主要由应用程序用来发现和跟踪服务器支持和网络行为。

2.Get
检索文档。

3.Put 和 Post。
将文档提交到服务器。

4.Delete。
销毁资源或集合。

5. Mkcol。
创建集合。

6.PropFind 和 PropPatch。
针对资源和集合检索和设置属性。

7.Copy 和 Move。
管理命名空间上下文中的集合和资源。

8. Lock 和 Unlock。
改写保护。

WebDAV 请求的一般结构遵循 HTTP 的格式。
并且由以下三个组件构成:

    1. 方法。 声明由客户端执行的方法(上面描述的方法)。
    1. 标头。 描述有关如何完成此任务的指令。
    1. 主体(可选)。 定义用在该指令或其他指令中的数据,用以描述如何完成此方法。
      在主体组件中,XML 成为整个 WebDAV 结构中的关键元素。

参考:

WebDAV