(chap9 基于HTTP的功能追加协议) Web 服务器管理文件的 WebDAV
WebDAV(Web-based Distributed Authoring and Versioning)基于萬維網(wǎng)的分布式創(chuàng)作和版本控制
1. 定義
一個(gè)可對 Web 服務(wù)器上的內(nèi)容直接進(jìn)行文件復(fù)制、編輯等操作的分布式文件系統(tǒng)。功能包括:
- 創(chuàng)建文件
- 刪除文件
- 文件創(chuàng)建者管理
- 文件編輯過程中禁止其他用戶內(nèi)容覆蓋的加鎖功能
- 對文件內(nèi)容修改的版本控制功能。
它作為擴(kuò)展 HTTP/1.1的協(xié)議定義在 RFC4918。
2. 擴(kuò)展HTTP/1.1的WebDAV
-
集合(Collection )
是一種統(tǒng)一管理多個(gè)資源的概念。以集合為單位可進(jìn)行各種操作。也可實(shí)現(xiàn)類似集合的集合這樣的疊加。 -
資源( Resource )
把文件或集合稱為資源 -
屬性( Property )
定義資源的屬性。定義以“名稱=值”的格式執(zhí)行。 -
鎖( Lock )
把文件設(shè)置成無法編輯狀態(tài)。多個(gè)人同時(shí)編輯時(shí),可防止在同一時(shí)間進(jìn)行內(nèi)容寫入。
3. WebDAV內(nèi)新增的方法及狀態(tài)碼
為實(shí)現(xiàn)遠(yuǎn)程文件管理,增加的方法如下:
propfind:獲取屬性
proppatch:修改屬性
mkcol:創(chuàng)建集合
copy:復(fù)制資源及屬性
move:移動(dòng)資源
lock:資源加鎖
unlock:資源解鎖
為了配合擴(kuò)展的方法,狀態(tài)碼也隨之?dāng)U展:
102 Processing:可正常處理請求,但目前是處理中狀態(tài)
207 Multi-Status:存在多種狀態(tài)
422 Unprocessible Entily:格式正確,內(nèi)容有誤
424 Failed Dependency:處理與某請求關(guān)聯(lián)的請求失敗,因此不再維持依賴關(guān)系
507 Insufficient Storage:保存空間不足
3.1 WebDAV的請求實(shí)例
下面是使用PROPFIND方法對http://www.example.com/file 發(fā)起獲取屬性的請求。
PROPFIND/file HTTP/1.1Host: www .example.com Content-Type: application/xml;charset="utf-8" Content-Length: 219<?xml version="1.0" encoding="utf-8" ?> <D:propfind xmlns:D="DAV : " <D:prop xmlns:R="http://ns.example.com/boxschema/"> <R:bigbox/> <R:author/<R:DingALing/> <R:Random/> </D:prop> </D:propfind>3.2 WebDAV的響應(yīng)實(shí)例
eg 針對之前的PROPFIND方法,返回http://www.example.com/file的屬性的響應(yīng)。
HTTP/1.1 207 Multi-status Content-Type: application/xml ;charset="utf-8" Content-Length: 831<?xml version="1.0"encoding= "utf-8"?> <D:multistatus xmlns:D="DAV: "> <D:response xmlns:R="http: //ns.example.com/boxschema/"> <D:href>http://www .example.com/file </D:href> <D:propstat> <D:prop> <R :bigbox> <R:BoxType>Box type Ac/R:BoxType> </R: bigbox> <R :author> <R:Name>J.J.Johnson</R:Name> </R:author> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> <D:propstat> <D:prop><R:DingALing/> <R : Random/> </D:prop> <D:status>HTTP/1.1 403 Forbidden</D:status> <D:responsedescription> The user does not have access to theDingALing property. </D:responsedescription> </D:propstat> </D:response> <D:responsedescription> There has been an access violation error. </D: responsedescription> </D:multistatus>總結(jié)
以上是生活随笔為你收集整理的(chap9 基于HTTP的功能追加协议) Web 服务器管理文件的 WebDAV的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (chap9 基于HTTP的功能追加协议
- 下一篇: chap10 构建Web内容的技术