概述
隨著(zhù)對 Internet 標準和網(wǎng)絡(luò )互操作性的日益關(guān)注,作為 HTTP 1.1 的擴展,WebDAV(Web分布式創(chuàng )作和版本控制)已經(jīng)成為重要的 Web 通訊協(xié)議(有關(guān)詳細信息,請參閱 IETF RFC 2616)。 WebDAV規范(有關(guān)詳細信息,請參閱 IETF RFC 2518)在 1999 年 2 月由 Internet 工程任務(wù)組 (IETF) 發(fā)布,這中間有Microsoft 的巨大貢獻,以及許多第三方供應商(如 Netscape、Xerox、IBM 和 Novell)的支持。
由于 WebDAV 與可擴展標記語(yǔ)言 (XML) 固有的集成,因此它不僅非常依賴(lài) XML,而且已經(jīng)成為通過(guò) Web 傳送 XML 數據的絕佳方法。 但是,在完全了解這些技術(shù)所帶來(lái)的好處之前,一定要先了解什么是 WebDAV,以及它在客戶(hù)端/服務(wù)器體系結構中的用途。
WebDAV的優(yōu)勢
由于 Web 已經(jīng)成為 Internet 的基礎,因此 HTTP 1.1(超文本傳送協(xié)議)被證實(shí)是用來(lái)傳輸數據的非常靈活的通用協(xié)議。但是,HTTP 存在一些明顯的缺點(diǎn),從而限制了它作為綜合的 Internet 通訊協(xié)議而被采用:它非常適合用于查看的靜態(tài)文檔,但不能提供以足夠復雜(以便向客戶(hù)端提供豐富的創(chuàng )作功能)的方式來(lái)處理文檔的方法。
例如,當兩個(gè)作者在未進(jìn)行交流的情況下同時(shí)對一個(gè)文檔進(jìn)行更改時(shí),就會(huì )出現“更新丟失”問(wèn)題。 只有由最后一個(gè)作者完成、并將修改后的文檔重新上載到服務(wù)器的修改才會(huì )保留下來(lái),另一個(gè)作者進(jìn)行的更改將丟失。
IETF WebDAV 工作組的目標是,設計一個(gè)協(xié)議,它提供基于標準的論壇中任何分布式創(chuàng )作工具需要的功能。 當前的 WebDAV 規范 (IETF RFC 2518) 解決協(xié)作式創(chuàng )作工具的三個(gè)主要問(wèn)題:
| ? | 改寫(xiě)保護。HTTP 1.1 無(wú)法確??蛻?hù)端可以保護資源,并且可以在其他客戶(hù)端同時(shí)編輯它們的情況下進(jìn)行更改。 使用 WebDAV,可以通過(guò)多種方式來(lái)鎖定資源,以便讓其他客戶(hù)端知道您對所討論的資源感興趣,或者防止其他客戶(hù)端訪(fǎng)問(wèn)該資源。 |
| ? | 資源管理。HTTP 只能直接訪(fǎng)問(wèn)單個(gè)資源。 WebDAV 提供一種更有效地組織數據的方法。 WebDAV 引入了可包含資源 的集合(類(lèi)似于文件系統文件夾)概念。 通過(guò) WebDAV 進(jìn)行的資源管理包括如下功能:創(chuàng )建、移動(dòng)、復制和刪除集合,以及集合中的資源或文件。 |
| ? | 文檔屬性。不 同類(lèi)型的數據具有唯一的屬性,這有助于描述數據。 例如,在電子郵件中,這些屬性可能是發(fā)件人的姓名和接收郵件的時(shí)間。 在協(xié)作文檔中,這些屬性可能是文檔原始作者的姓名和最后一個(gè)編輯者的姓名。 因為人們使用的文檔類(lèi)型各不相同,所以可能的屬性類(lèi)型列表也變得無(wú)限大。 XML 是 WebDAV 所需的一種可擴展通訊工具。 |
HTTP1.1(請參閱 IETF RFC 2068)提供一組可供客戶(hù)端與服務(wù)器通訊的方法,并指定響應(從服務(wù)器返回發(fā)出請求的客戶(hù)端)的格式。WebDAV 完全采用此規范中的所有方法,擴展其中的一些方法,并引入了其他可提供所描述功能的方法。 WebDAV 中使用的方法包括:
| ? | Options、Head 和 Trace。 主要由應用程序用來(lái)發(fā)現和跟蹤服務(wù)器支持和網(wǎng)絡(luò )行為。 |
| ? | Get。 檢索文檔。 |
| ? | Put 和 Post。 將文檔提交到服務(wù)器。 |
| ? | Delete。 銷(xiāo)毀資源或集合。 |
| ? | Mkcol。 創(chuàng )建集合。 |
| ? | PropFind 和 PropPatch。 針對資源和集合檢索和設置屬性。 |
| ? | Copy 和 Move。 管理命名空間上下文中的集合和資源。 |
| ? | Lock 和 Unlock。 改寫(xiě)保護。 |
WebDAV 請求的一般結構遵循 HTTP 的格式并且由以下三個(gè)組件構成:
| ? | 方法。 聲明由客戶(hù)端執行的方法(上面描述的方法)。 |
| ? | 標頭。 描述有關(guān)如何完成此任務(wù)的指令。 |
| ? | 主體(可選)。 定義用在該指令或其他指令中的數據,用以描述如何完成此方法。 |
在主體組件中,XML 成為整個(gè) WebDAV 結構中的關(guān)鍵元素。
聯(lián)系客服