WebDAV

网络协议

基於Web的分散式編寫和版本控制(英語:Web-based Distributed Authoring and Versioning,縮寫:WebDAV)是超文字傳輸協定(HTTP)的擴充,有利於用戶間協同編輯和管理儲存在萬維網伺服器文件。WebDAV由互聯網工程任務組的工作群組在RFC 4918中定義。

WebDAV
網絡傳輸協定
OSI層級應用層
80、443
RFCRFC 2518RFC 4918
網站www.webdav.org

WebDAV協定為用戶在伺服器上建立、更改和移動文件提供了一個框架。WebDAV協定最重要的功能包括作者或修改日期等屬性的維護、命名空間管理、集合和覆蓋保護。為屬性維護所提供的功能包括建立、刪除和查詢檔案資訊等;命名空間管理處理在伺服器名稱空間內複製和移動網頁的能力;集合Collections)處理各種資源的建立、刪除和列舉;覆蓋保護處理與鎖定檔案相關的問題。WebDAV協定利用TLSHTTP摘要認證XML等技術來滿足這些需求。

許多現代作業系統為WebDAV提供了內建的客戶端支援。

歷史

WebDAV創始於1996年,當時加州大學爾灣分校博士畢業生Jim Whitehead英語Jim Whitehead (computer scientist)W3C共同主辦了兩場會議,與感興趣的人討論萬維網上的分散式創作問題。[1][2] 蒂姆·伯納斯-李對網絡的最初看法是涉及閱讀和寫作的媒介。事實上,Berners Lee的第一個Web瀏覽器WorldWideWeb),可以檢視和編輯網頁;但是,隨着網絡的成長,對大多數用戶來說成為了唯讀媒介。懷特黑德和其他志同道合的人想超越這個限制。[3]

W3C會議決定成立一個IETF工作群組,因為新的工作將導致對HTTP進行擴充,而當時IETF已經開始對HTTP進行標準化。

隨着協定的工作開始,很明顯,同時處理分散式創作和版本控制將涉及太多的工作,並且任務將不得不分開。WebDAV小組專注於分散式創作,將版本控制留作以後研究。(Delta-V擴充套件後來加入了版本控制功能 – 請參閱下面的擴充與衍生章節。)

互聯網工程指導組英語Internet Engineering Steering Group(IESG)接受RFC 2518的增量更新之後,WebDAV工作群組在2007年3月結束了其工作。當時還沒有完成的其他擴充,比如BIND方法,已經由其獨立作者獨立於正式工作群組完成。

實現

 
相容HTTP伺服器中的WebDAV協同編輯

WebDAV擴充了request方法所允許的標準HTTP謂詞和HTTP頭。增加的謂詞包括:

COPY
將資源從一個URI複製到另一個URI
LOCK
鎖定一個資源。WebDAV支援共用鎖和互斥鎖。
MKCOL
建立集合(即目錄
MOVE
將資源從一個URI移動到另一個URI
PROPFIND
Web資源英語web resource中檢索以XML格式儲存的屬性。它也被多載,以允許一個檢索遠端系統的集合結構(也叫目錄階層)。
PROPPATCH
在單個原子性動作英語atomic commit中更改和刪除資源的多個屬性
UNLOCK
解除資源的鎖定

伺服器支援

客戶端支援

擴充與衍生

針對版本控制,Web版本控制與組態管理工作小組下的Delta-V協定增加了資源修訂追蹤功能,並發表於RFC 3253中。

在搜尋和定位方面,WebDAV Search specification接手DAV Searching and Locating(DASL)工作小組的工作,並於2008年11月以RFC 5323發佈。[8]

針對行事曆,CalDAV英語CalDAV是一種允許透過WebDAV存取行事曆的通訊協定。CalDAV將行事曆事件模擬為iCalendar格式的HTTP資源,並將包含事件的行事曆以WebDAV集合模擬。

對於群組軟件而言,GroupDAV是WebDAV的變體,允許用戶端/伺服器群組軟件系統儲存和取得物件,例如行事曆和通訊錄項目,而非網頁。

針對MS Exchange的互操作性,WebDAV可用於讀取/更新/刪除信箱或公用資料夾中的項目。適用於Exchange的WebDAV已由微軟擴展至可處理訊息資料。Exchange Server 2000、2003和2007版本支援WebDAV。但是Exchange 2010已停止支援WebDAV[9],改用Exchange Web Services(EWS),這是一種以SOAP/XML為基礎的API

參見

參考文獻

  1. ^ Proposed agenda for San Mateo Meeting. 1996 [2018-02-03]. (原始內容存檔於2020-10-29). 
  2. ^ Brief mtg. summary. 1996 [2018-02-03]. (原始內容存檔於2016-05-27). 
  3. ^ Re: Updated agenda. [2018-02-03]. (原始內容存檔於2016-05-27). 
  4. ^ Module ngx_http_dav_module. nginx website. [15 July 2016]. (原始內容存檔於2020-10-06). 
  5. ^ Module nginx-dav-ext-module. github.com. [2 August 2016]. (原始內容存檔於2020-10-31). 
  6. ^ Nextcloud 11 User Manual. nextcloud.com. [19 September 2017]. (原始內容存檔於2017-05-21). 
  7. ^ lighttpd mod webdav. (原始內容存檔於2020-09-27). 
  8. ^ Reschke, J. F.; Reddy, S.; Davis, J.; Babich, A. Web Distributed Authoring and Versioning (WebDAV) SEARCH. www.greenbytes.de. 2008-11 [2024-08-21] (英語). 
  9. ^ Archiveddocs. Discontinued Features: Exchange 2010 Help. learn.microsoft.com. 2014-07-23 [2024-08-21] (美國英語). 

外部連結