您的位置:首页 > 其它

webdav常用方法和概念总结

2007-09-10 11:46 253 查看
最近研究拉一下webdav+java+exchange邮件、日程、联系人管理的相关工作,发现这方面的java资料比较少,比较有参考价值的就是exchange的SDK,我把搜索的一些相关资料和自己的成果会陆续的总结一下希望能对有需要的人提供点帮助,如过您对这方面也有一定研究欢迎共享您的收获!
============================
何为WebDAV?
  WebDAV 是对 HTTP/1.1 协议的扩展,添加了新的 HTTP 方法和标头,支持任意类型的 Web 制作,不仅支持 HTML 和 XML,还支持文本、图形、电子表格等格式。
使用 WebDAV 可以完成的工作包括:

1. 特性(元数据)处理。您可以使用 WebDAV 方法 PROPFIND 和 PROPPATCH 创建、删除和查询有关 Web 页面的信息,例如作者和创建日期。

2. 集合和资源管理。您可以使用 WebDAV 方法 GET、PUT、DELETE 和 MKCOL 创建文档集合并检索分层结构成员列表(类似于文件系统中的目录列表)。

3. 锁定。您可以使用 WebDAV 禁止多人同时对一个文档进行操作。可以通过 WebDAV 方法 LOCK 和 UNLOCK 使用互斥锁或共享锁,这将有助于防止出现“丢失更新”(更改被覆盖)的问题。

4. 名称空间操作。您可以使用 WebDAV 方法 COPY 和 MOVE 让服务器复制和删除(转移、移动) Web 资源。

常见WebDAV术语

URI。URI(统一资源标识符)是一种文件标识符,通过使用缩写的 URL 提供了额外的安全保护。一个 URL 映射代替了 URL 的第一部分,从而对用户隐藏了文件的完整物理路径名。

源 URI。术语“源 URI”是指能用来访问资源的源代码的 URI。

集合。 WebDAV 集合是为 WebDAV 操作启用的一个或一组资源。集合包含一组称为成员 URI 的 URI,它们标识了启用了 WebDAV 的成员资源。

成员 URI。集合中一组 URI 中的一个成员。

内部成员 URI。与集合的 URI 直接相关的一个成员 URI。例如,如果 URL 为 http://xx.xx.com/webdav/doc 的资源启用了 WebDAV,并且如果 URL 为 http://xx.xx.com/webdav/ 的资源也启用了 WebDAV,则 URL 为 http://xx.xx.com/webdav/ 的资源就是一个集合,它包含 http://xx.xx.com/webdav/doc 并将其作为一个内部成员。

特性。一个包含资源的相关说明性信息的“名称/值”对。使用特性可以有效地查找和管理资源。例如,可以使用特性“creationdate”按资源的创建日期索引所有资源,或者使用特性“author”按作者姓名进行索引。

锁定。锁定资源功能提供了这样一种机制,即可以保证在一个用户编辑资源时,其他用户不能进行修改。锁定可以防止发生覆盖冲突,解决了“丢失更新”的问题。

新 HTTP 方法。WebDAV 引入了若干新 HTTP 方法,用于告知启用了 WebDAV 的服务器如何处理请求。这些方法是对现有方法(例如 GET、PUT 和 DELETE)的补充,可用来执行 WebDAV 事务。下面简要介绍这些新 HTTP 方法:

新 HTTP 方法。WebDAV 引入了若干新 HTTP 方法,用于告知启用了 WebDAV 的服务器如何处理请求。这些方法是对现有方法(例如 GET、PUT 和 DELETE)的补充,可用来执行 WebDAV 事务。下面简要介绍这些新 HTTP 方法:

· COPY。用于复制资源。可以使用 Depth: 标头移动资源,使用 Destination: 标头指定目标。如果适用,COPY 方法也使用 Overwrite: 标头。

· MOVE。用于移动资源。可以使用 Depth: 标头移动资源,使用 Destination: 标头指定目标。如果适用,MOVE 方法也使用 Overwrite: 标头。

· MKCOL。用于创建新集合。使用此方法可避免过载 PUT 方法。

· PROPPATCH。用于设置、更改或删除单个资源的特性。

· PROPFIND。用于获取一个或多个资源的一个或多个特性。当客户机向服务器提交对某个集合的 PROPFIND 请求时,该请求可能会包含一个值为 0、1 或 infinity 的 Depth: 标头。

o 0。指定将获取指定 URI 处的集合的特性。

o 1。指定将获取该集合以及位于该指定 URI 之下与其紧邻的资源的特性。

o infinity。指定将获取该集合及其包含的所有成员 URI 的特性。由于深度为无穷大的请求需要遍历整个集合,因而会大大增加服务器的负担。

· LOCK。为资源添加锁。使用 Lock-Token: 标头。

· UNLOCK。删除资源的锁。使用 Lock-Token: 标头。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: