概述
随着对 Internet 标准和网络互操作性的日益关注,作为 HTTP 1.1 的扩展,WebDAV(Web 分布式创作和版本控制)已经成为重要的 Web 通讯协议(有关详细信息,请参阅 IETF RFC 2616)。 WebDAV 规范(有关详细信息,请参阅 IETF RFC 2518)在 1999 年 2 月由 Internet 工程任务组 (IETF) 发布,这中间有 Microsoft 的巨大贡献,以及许多第三方供应商(如 Netscape、Xerox、IBM 和 Novell)的支持。
由于 WebDAV 与可扩展标记语言 (XML) 固有的集成,因此它不仅非常依赖 XML,而且已经成为通过 Web 传送 XML 数据的绝佳方法。 但是,在完全了解这些技术所带来的好处之前,一定要先了解什么是 WebDAV,以及它在客户端/服务器体系结构中的用途。
WebDAV的优势
由于 Web 已经成为 Internet 的基础,因此 HTTP 1.1(超文本传送协议)被证实是用来传输数据的非常灵活的通用协议。 但是,HTTP 存在一些明显的缺点,从而限制了它作为综合的 Internet 通讯协议而被采用: 它非常适合用于查看的静态文档,但不能提供以足够复杂(以便向客户端提供丰富的创作功能)的方式来处理文档的方法。
例如,当两个作者在未进行交流的情况下同时对一个文档进行更改时,就会出现“更新丢失”问题。 只有由最后一个作者完成、并将修改后的文档重新上载到服务器的修改才会保留下来,另一个作者进行的更改将丢失。
IETF WebDAV 工作组的目标是,设计一个协议,它提供基于标准的论坛中任何分布式创作工具需要的功能。 当前的 WebDAV 规范 (IETF RFC 2518) 解决协作式创作工具的三个主要问题:
• | 改写保护。HTTP 1.1 无法确保客户端可以保护资源,并且可以在其他客户端同时编辑它们的情况下进行更改。 使用 WebDAV,可以通过多种方式来锁定资源,以便让其他客户端知道您对所讨论的资源感兴趣,或者防止其他客户端访问该资源。 |
• | 资源管理。HTTP 只能直接访问单个资源。 WebDAV 提供一种更有效地组织数据的方法。 WebDAV 引入了可包含资源 的集合(类似于文件系统文件夹)概念。 通过 WebDAV 进行的资源管理包括如下功能:创建、移动、复制和删除集合,以及集合中的资源或文件。 |
• | 文档属性。不同类型的数据具有唯一的属性,这有助于描述数据。 例如,在电子邮件中,这些属性可能是发件人的姓名和接收邮件的时间。 在协作文档中,这些属性可能是文档原始作者的姓名和最后一个编辑者的姓名。 因为人们使用的文档类型各不相同,所以可能的属性类型列表也变得无限大。 XML 是 WebDAV 所需的一种可扩展通讯工具。 |
HTTP 1.1(请参阅 IETF RFC 2068)提供一组可供客户端与服务器通讯的方法,并指定响应(从服务器返回发出请求的客户端)的格式。 WebDAV 完全采用此规范中的所有方法,扩展其中的一些方法,并引入了其他可提供所描述功能的方法。 WebDAV 中使用的方法包括:
• | Options、Head 和 Trace。 主要由应用程序用来发现和跟踪服务器支持和网络行为。 |
• | Get。 检索文档。 |
• | Put 和 Post。 将文档提交到服务器。 |
• | Delete。 销毁资源或集合。 |
• | Mkcol。 创建集合。 |
• | PropFind 和 PropPatch。 针对资源和集合检索和设置属性。 |
• | Copy 和 Move。 管理命名空间上下文中的集合和资源。 |
• | Lock 和 Unlock。 改写保护。 |
WebDAV 请求的一般结构遵循 HTTP 的格式并且由以下三个组件构成:
• | 方法。 声明由客户端执行的方法(上面描述的方法)。 |
• | 标头。 描述有关如何完成此任务的指令。 |
• | 主体(可选)。 定义用在该指令或其他指令中的数据,用以描述如何完成此方法。 |
在主体组件中,XML 成为整个 WebDAV 结构中的关键元素。