跳转到内容

WebDAV:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
LNDDYL留言 | 贡献
无编辑摘要
本次編輯內容來自現存的英文維基條目en:WebDAV;請參考該條目的歷史及格式。
标签可视化编辑 移动版编辑 移动版网页编辑 高级移动版编辑
 
(未显示13个用户的22个中间版本)
第1行: 第1行:
{{noteTA|G1=IT}}
{{noteTA|G1=IT}}
{{Infobox networking protocol
{{expand|time=2013-02-07T05:49:45+00:00}}
| name = WebDAV
{{refimprove|time=2013-02-07T05:49:45+00:00}}
| rfcs = {{IETF RFC|2518}}、{{IETF RFC|4918}}
'''基于万维网的分布式创作和版本控制(WebDAV)'''是一组基于[[超文本传输协议]]的技术集合,有利于用户间协同编辑和管理存储在[[万维网]]服务器文档。WebDAV最重要的特性包括:
| ports = 80、443
* 锁(防止覆盖)
| osilayer = [[應用層]]
* 特性(创建,移除和查询)
}}
* 命名空间管理
'''基于Web的分布式编写和版本控制'''({{lang-en|'''W'''eb-based '''D'''istributed '''A'''uthoring and '''V'''ersioning}},缩写:'''WebDAV''')是[[超文本传输协议]](HTTP)的扩展,有利于用户间协同编辑和管理存储在[[万维网]]服务器文档。WebDAV由[[互联网工程任务组]]的工作组在{{IETF RFC|4918}}中定义。
* 集合(创建,移除和列举资源)

WebDAV协议为用户在[[服务器]]上创建、更改和移动文档提供了一个框架。WebDAV协议最重要的功能包括作者或修改日期等属性的维护、[[命名空间]]管理、集合和覆盖保护。为属性维护所提供的功能包括创建、删除和查询文件信息等;'''命名空间管理'''处理在服务器名称空间内复制和移动网页的能力;'''集合'''({{lang|en|Collections}})处理各种资源的创建、删除和列举;'''覆盖保护'''处理与锁定文件相关的问题。WebDAV协议利用[[TLS]]、[[HTTP摘要认证]]、[[XML]]等技术来满足这些需求。

许多现代[[操作系统]]为WebDAV提供了内置的客户端支持。


== 历史 ==
== 历史 ==
WebDAV创始于1996年,当时[[加州大學爾灣分校]]博士毕业生{{le|Jim Whitehead|Jim Whitehead (computer scientist)}}与[[万维网联盟|W3C]]共同主办了两场会议,与感兴趣的人讨论万维网上的分布式创作问题。<ref>{{cite web|url= http://lists.w3.org/Archives/Public/w3c-dist-auth/1996AprJun/0002.html|title= Proposed agenda for San Mateo Meeting|year= 1996|accessdate= 2018-02-03|archive-date= 2020-10-29|archive-url= https://web.archive.org/web/20201029060418/https://lists.w3.org/Archives/Public/w3c-dist-auth/1996AprJun/0002.html|dead-url= no}}</ref><ref>{{cite web|url= http://lists.w3.org/Archives/Public/w3c-dist-auth/1996JulSep/0095.html|title= Brief mtg. summary|year= 1996|accessdate= 2018-02-03|archive-date= 2016-05-27|archive-url= https://web.archive.org/web/20160527134700/http://lists.w3.org/Archives/Public/w3c-dist-auth/1996JulSep/0095.html|dead-url= no}}</ref>
[[蒂姆·伯纳斯-李]]对网络的最初看法是涉及阅读和写作的[[儲存裝置|媒介]]。事实上,Berners Lee的第一个[[网页浏览器|Web浏览器]]([[WorldWideWeb]]),可以查看和编辑[[網頁]];但是,随着网络的成长,对大多数用户来说成为了只读媒介。怀特黑德和其他志同道合的人想超越这个限制。<ref>{{cite web
|url= http://lists.w3.org/Archives/Public/w3c-dist-auth/1996JulSep/0001.html
|title= Re: Updated agenda
|accessdate= 2018-02-03
|archive-date= 2016-05-27
|archive-url= https://web.archive.org/web/20160527134652/http://lists.w3.org/Archives/Public/w3c-dist-auth/1996JulSep/0001.html
|dead-url= no
}}</ref>

W3C会议决定成立一个[[互联网工程任务组|IETF]]工作组,因为新的工作将导致对[[超文本传输协议|HTTP]]进行扩展,而当时IETF已经开始对HTTP进行标准化。

随着协议的工作开始,很明显,同时处理分布式创作和[[版本控制]]将涉及太多的工作,并且任务将不得不分开。WebDAV小组专注于分布式创作,将版本控制留作以后研究。([[WebDAV#擴充與衍生|Delta-V擴充套件]]後來加入了版本控制功能{{snd}}請參閱下面的擴充與衍生章節。)

在{{le|互联网工程指导组|Internet Engineering Steering Group}}(IESG)接受{{IETF RFC|2518}}的增量更新之后,WebDAV工作组在2007年3月结束了其工作。当时还没有完成的其他扩展,比如BIND方法,已经由其独立作者独立于正式工作组完成。


== 实现 ==
== 实现 ==
[[File:WebDAV collaborative authoring.png|thumb|500px|相容HTTP伺服器中的WebDAV[[協同編輯]]]]
=== Linux ===

* '''davfs2'''或者fusedav将WebDAV共享挂载成Coda或者FUSE文件系统。
WebDAV扩展了[[超文本传输协议#请求信息|request]]方法所允许的标准HTTP谓词和HTTP头。增加的谓词包括:
* '''KDE'''将WebDAV作为kio_http的一部分提供原生支持。Dolphin,Konqueror等其他KDE应用程序可以直接与WebDAV服务器交互。

* '''Nautilus'''也提供内置支持。
; COPY
* '''cadaver'''命令行工具提供类FTP命令集,也包含在很多Linux发行版中。
: 将资源从一个[[统一资源标志符|URI]]复制到另一个URI
* '''Apache''' HTTP 服务 提供基于davfs和Apache Subversion的WebDAV 模块。
; LOCK
: [[锁 (计算机科学)|锁定]]一个资源。WebDAV支持共享锁和互斥锁。
; MKCOL
: 创建集合(即[[目录 (文件系统)|目录]])
; MOVE
: 将资源从一个[[统一资源标志符|URI]]移动到另一个URI
; PROPFIND
: 从{{le|Web资源|web resource}}中检索以[[XML]]格式存储的属性。它也被[[函数重载|重载]],以允许一个检索远程系统的集合结构(也叫目录层次结构)。
; PROPPATCH
: 在单个{{le|原子性提交|atomic commit|原子性动作}}中更改和删除资源的多个属性
; UNLOCK
: 解除资源的锁定

=== 服务器支持 ===
* [[Apache HTTP Server]]提供基于{{le|davfs}}[[Subversion|Apache Subversion (svn)]]的WebDAV模块。
* [[微软]]的[[網際網路資訊服務|IIS]]也有WebDAV模块。
* [[Nginx]]有非常有限的可选WebDAV模块<ref>{{cite web|title=Module ngx_http_dav_module|url=http://nginx.org/en/docs/http/ngx_http_dav_module.html|website=nginx website|accessdate=15 July 2016|archive-date=2020-10-06|archive-url=https://web.archive.org/web/20201006184153/http://nginx.org/en/docs/http/ngx_http_dav_module.html|dead-url=no}}</ref>和第三方模块<ref>{{cite web|title=Module nginx-dav-ext-module|url=https://github.com/arut/nginx-dav-ext-module/|website=github.com|accessdate=2 August 2016|archive-date=2020-10-31|archive-url=https://web.archive.org/web/20201031112559/https://github.com/arut/nginx-dav-ext-module|dead-url=no}}</ref>
* {{le|SabreDAV}}是一个PHP应用程序,可以在Apache或Nginx上使用,代替它们的捆绑模块
* [[Nextcloud]]是一个云存储PHP应用程序,它提供了完整的WebDAV支持<ref>{{cite web|title=Nextcloud 11 User Manual|url=https://docs.nextcloud.com/server/11/user_manual/files/access_webdav.html|website=nextcloud.com|accessdate=19 September 2017|archive-date=2017-05-21|archive-url=https://web.archive.org/web/20170521154143/https://docs.nextcloud.com/server/11/user_manual/files/access_webdav.html|dead-url=no}}</ref>
* [[lighttpd]]有一个可选的WebDAV模块<ref>{{Cite web|url=http://redmine.lighttpd.net/projects/1/wiki/Docs_ModWebDAV|title=lighttpd mod webdav|last=|first=|date=|website=|archive-url=https://web.archive.org/web/20200927074625/https://redmine.lighttpd.net/projects/1/wiki/Docs_ModWebDAV|archive-date=2020-09-27|dead-url=no|access-date=}}</ref>

=== 客户端支持 ===
* [[Git]]支持写入HTTP远端,尽管需要特殊服务器支持的HTTP的“智能”Git协议已经成为WebDAV的首选协议
* [[Linux]]通过[[GVfs]](包括[[Nautilus檔案瀏覽器|GNOME文件]])或通过[[KIO]](包括[[Konqueror]]和[[Dolphin (軟體)|Dolphin]])支持WebDAV
* [[macOS]]对{{le|CalDAV}}和[[CardDAV]]有原生支持,其设计基于WebDAV
* [[Microsoft Windows]],其[[檔案總管|Explorer]]有原生支持
* [[Microsoft Office]]

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

在搜尋和定位方面,WebDAV Search specification接手DAV Searching and Locating(DASL)工作小組的工作,並於2008年11月以{{IETF RFC|5323}}發布。<ref>{{Cite web|title=Web Distributed Authoring and Versioning (WebDAV) SEARCH|url=https://www.greenbytes.de/tech/webdav/draft-reschke-webdav-search-latest.html|website=www.greenbytes.de|date=2008-11|language=en|last=Reschke|first=J. F.|last2=Reddy|first2=S.|last3=Davis|first3=J.|last4=Babich|first4=A.|access-date=2024-08-21}}</ref>

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

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

針對MS Exchange的互操作性,WebDAV可用於讀取/更新/刪除信箱或公用資料夾中的項目。適用於Exchange的WebDAV已由微軟擴展至可處理訊息資料。Exchange Server 2000、2003和2007版本支援WebDAV。但是Exchange 2010已停止支援WebDAV<ref>{{Cite web|title=Discontinued Features: Exchange 2010 Help|url=https://learn.microsoft.com/en-us/previous-versions/office/exchange-server-2010/aa998911(v=exchg.141)?redirectedfrom=MSDN|website=learn.microsoft.com|date=2014-07-23|language=en-us|last=Archiveddocs|access-date=2024-08-21}}</ref>,改用Exchange Web Services(EWS),這是一種以[[SOAP]]/[[XML]]為基礎的[[API]]。


=== Windows ===
== 参见 ==
* [[內容管理]]
* '''NetDrive''':掛載為網路硬碟機
* [[WebDAV软件比较]]
* [[集群文件系统]]
* [[CardDAV]]
* [[數據可移植性]]


=== Mac ===
== 参考文献 ==
{{Reflist|2}}
* '''Finder''':系統內建程式


== 外部链接 ==
== 外部链接 ==
* [http://webdav.org/ WebDAV Resources]
* [https://web.archive.org/web/20120626092812/http://webdav.org/ WebDAV Resources]
* [http://savannah.nongnu.org/projects/davfs2 Davfs2 project] {{Wayback|url=http://savannah.nongnu.org/projects/davfs2 |date=20201111221014 }}
* [http://0pointer.de/lennart/projects/fusedav Fusedav project]{{Wayback|url=http://0pointer.de/lennart/projects/fusedav |date=20090203160814 }}
* [http://httpd.apache.org/docs/2.4/mod/mod_dav.html WebDAV Apache modules] {{Wayback|url=http://httpd.apache.org/docs/2.4/mod/mod_dav.html |date=20210118230021 }}
* [https://www.drivehq.com/help/features/webdav.aspx WebDAV Drive Mapping Tool]


{{Authority control}}
{{Authority control}}
[[Category:网协议]]
[[Category:网协议]]
[[Category:W3C标准]]
[[Category:工作组]]
[[Category:HTTP]]
[[Category:HTTP]]
[[Category:协作软件]]
[[Category:网络文件系统]]

2024年8月21日 (三) 08:25的最新版本

WebDAV
网络传输协议
OSI层级應用層
端口80、443
RFCRFC 2518RFC 4918
网站www.webdav.org

基于Web的分布式编写和版本控制(英語:Web-based Distributed Authoring and Versioning,缩写:WebDAV)是超文本传输协议(HTTP)的扩展,有利于用户间协同编辑和管理存储在万维网服务器文档。WebDAV由互联网工程任务组的工作组在RFC 4918中定义。

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] (美国英语). 

外部链接

[编辑]