webdav 概览
webdav 概覽
WebDav(Web Distributed Authoring and Versioning) 是一個(gè)控制遠(yuǎn)端Web資源的協(xié)議,它基于HTTP1.1。它的定義在RFC 4918(https://tools.ietf.org/html/rfc4918)。這個(gè)協(xié)議的場(chǎng)景可以是分布式協(xié)同辦公,也可以是一個(gè)文件存儲(chǔ)服務(wù)器。WebDav的語(yǔ)義是基于XML的。微軟的sharepoint,Dropbox, iCloud,offic365等都使用了這個(gè)協(xié)議。
webdav支持哪些方法?
首先必然支持普通的HTTP1.1的一些方法:
- GET
- POST
- PUT
- DELETE
- PROPFIND
- PROPPATCH
- MKCOL
- COPY
- MOVE
- LOCK
- UNLOCK
PROPFIND 和 GET
PROPFIND 是查找資源的信息,并不包括資源的內(nèi)容。而 GET 方法是直接返回資源的具體內(nèi)容。在PROPFIND中,你可以指定返回資源的哪些屬性信息,也可以返回資源的所有屬性信息(allprop)。
PROPPATCH
對(duì)資源的某個(gè)或者某些屬性進(jìn)行操作,這個(gè)操作可以是增加,刪除,修改等。
MKCOL
就是創(chuàng)建Collection,Collection的意思就是文件夾,它對(duì)應(yīng)一個(gè)URI路徑。這個(gè)命令創(chuàng)建的Collection如果事先存在,或者前置的路徑不存在,都會(huì)報(bào)錯(cuò)。
POST
POST方法的實(shí)際作用在Webdav的協(xié)議中沒(méi)有做強(qiáng)制定義,一般都是由具體的應(yīng)用場(chǎng)景的Server進(jìn)行定義的。
DELETE
DELETE 就是刪除操作,它可以刪除資源,也可以刪除一個(gè)Collection。但是刪除資源的時(shí)候,要求被刪除的資源不能有鎖。
如果是刪除一個(gè)Collection,要求這個(gè)Collection。
LOCK 和 UNLOCK
對(duì)一個(gè)已經(jīng)存在的資源加鎖或者解鎖操作。
COPY
COPY復(fù)制一個(gè)文件到目標(biāo)文件夾,目標(biāo)文件夾必須存在
PUT
PUT是用來(lái)更新服務(wù)器上的一個(gè)文件的,它不能作用于文件夾。
搭建nginx服務(wù)支持webdav
使用nginx就能很簡(jiǎn)單搭建一個(gè)支持webdav的文件服務(wù),但是這個(gè)webdav只支持幾個(gè)方法:PUT,DELETE,MKCOL,COPY,MOVE。基于這幾個(gè)操作,你可以很方便操作這個(gè)文件服務(wù)器。但是需要使用PROPFIND等命令,你就需要加上nginx-dav-ext-module這個(gè)模塊,只有支持了PROFIND命令,mac的finder才能打開(kāi)webdav服務(wù)文件。
nginx-dav-ext-module里面還有一個(gè)OPTIONS方法,這個(gè)是HTTP1.1的方法,服務(wù)端返回它支持的方法。
總結(jié)
- 上一篇: 交换机、路由器模式层次简介
- 下一篇: 关于SAP的用户出口 SAP的用户功能增