WebDAV

WebDAV(Web-based Distributed Authoring and Versioning)是基於 HTTP 1.1 的一個通信協議。它爲 HTTP 1.1 添加了一些擴展(就是在 GET、POST、HEAD 等幾個 HTTP 標準方法以外添加了一些新的方法),使得應用程序可以直接將文件寫到 Web Server 上,並且在寫文件時候可以對文件加鎖,寫完後對文件解鎖,還可以支持對文件所做的版本控制。這個協議的出現極大地增加了 Web 作爲一種創作媒體對於我們的價值。基於 WebDAV 可以實現一個功能強大的內容管理系統或者配置管理系統。
我這裏不想詳細介紹 WebDAV 的協議,感興趣的可以在這裏找到相關的資料:
http://www.webdav.org
其中首先應該看的是這份 WebDAV FAQ:
http://www.webdav.org/other/faq.html

WebDAV 本身是一個類似於 HTTP 的通信協議(IETF RFC 2518)。它與 HTTP  類似,需要實現服務器和客戶端兩部分軟件。目前 WebDAV 已經有了大量相關的軟件實現。
在這裏是一些與 WebDAV 相關的軟件項目:
http://www.webdav.org/projects/

在這些項目中,我們最感興趣的當然是那些用 Java 實現的開源項目,Slide 是其中最重要的一個項目。Slide 是 Jakarta 項目的一個子項目(又是 Apache 山頭的),提供了一套 WebDAV 的服務器端和客戶端的開發庫和 API,目前已經出到了 2.0 版。
http://jakarta.apache.org/slide/
在這裏下載最新的 Slide 2.0 的 Binary 包。
http://jakarta.apache.org/site/binindex.cgi
Slide 分成服務器端和客戶端兩部分:
服務器端:
http://apache.linuxforum.net/dist/jakarta/slide/binaries/jakarta-slide-server-bin-2.0.zip
客戶端:
http://apache.linuxforum.net/dist/jakarta/slide/binaries/jakarta-slide-webdavclient-bin-2.0.zip

我先講講服務器端如何配置:
解壓縮,假設在 D:/tmp/jakarta-slide-server-2.0 下,你會在
D:/tmp/jakarta-slide-server-2.0/slide/webapp/
下找到兩個 war 文件:
slide.war:Slide 服務器端配置,用 Servlet 實現。
slide-doc.war:Slide 文檔。

把這兩個 war 文件 copy 到你的 Web Container(Tomcat、Jetty、Resin、etc.) 的部署目錄(一般是 webapps 目錄)下,然後重新啓動 Web Container。

在我現在寫的這個文檔中服務器端的配置就是這麼簡單。

再講講在客戶端如何配置。
WebDAV 有非常多的客戶端,用 Slide 客戶端的庫可以非常容易地寫出一個 WebDAV 客戶端程序。感興趣的可以看看這篇文檔:
http://www.onjava.com/lpt/a/4387

我主要講講如何用 Windows 2000/XP 自帶的 Web Folder 功能來訪問 Web 文件夾。
Windows 2000/XP 安裝後已經具備訪問基於 WebDAV 協議的 Web 文件夾的功能,而且可以把 Web 文件夾映射爲一個本地文件夾,支持拖放、拷貝/粘貼等等功能,使用起來非常方便。
在 Windows 2000/XP 中添加 Web 文件夾的方法是:
打開“網上鄰居”,添加網上鄰居,在“請鍵入網上鄰居的位置”中輸入 Web 文件夾的 URL,例如我剛纔用 Slide 配置好的 WebDAV 服務器在:
http://localhost:8000/slide/
然後按照嚮導的提示繼續做就可以了,非常的簡單。
配置好了以後你就可以把這個 Web 文件夾當作本地文件夾一樣使用了。拖幾個文件進去試試吧。關於上述 Web Folder 的配置可以參考這些文檔:
http://chapters.marssociety.org/webdav/
(幾個閒着沒事孜孜不倦地研究人類如何移民火星的酷哥寫的文檔)
還有 M$ 網站上的相關文檔:
http://www.microsoft.com/windowsxp/home/using/productdoc/en/default.asp?url=/windowsxp/home/using/productdoc/en/using_webfolders_for_file_transfer.asp

M$ 的很多產品都內置有 WebDAV 的支持。例如:Office 2000、IE 5/6、Exchange Server、Frontpage。我配置好 WebDAV 服務器後,當我訪問這個 URL
http://localhost:8000/slide/files/23.doc
時,Word 2000 可以識別出 Web 服務器支持 WebDAV 協議。於是 Word 2000 可以直接編輯服務器上的這個文檔,編輯完後可以直接保存在 Web 服務器上。這個是不是比你習慣的 download->modify->upload 要方便的多?

WebDAV 還有很多話題,比如 WebDAV 完全可以取代 FTP。WebDAV 至少在以下幾個方面對 FTP 具有壓倒性優勢:
1、FTP 需要申請操作系統帳號。WebDAV 不需要申請任何操作系統帳號,它使用一套自己定義的安全完善的身份驗證機制。
2、FTP 的所有數據(包括登錄信息)全部使用明文傳送,加密必須要自己來實現,例如:可以手工用 GPG 來做這件事,但是畢竟還是不方便。用 WebDAV 就可以使用 HTTPS 來傳輸數據,加密解密的操作完全是在低層自動完成的。
3、FTP 傳輸數據的傳輸效率比較低,每傳送一個文件需要打開一個新的 TCP 連接,而 WebDAV 傳輸所有文件只需要一個 TCP 連接。
4、FTP 不象 HTTP 那樣容易穿越防火牆,在廣域網的應用範圍比 HTTP 要小的多。而 WebDAV 因爲是基於 HTTP 的,所以具有 HTTP 的所有優點。
5、FTP 客戶端工具沒有 WebDAV 客戶端工具使用方便。你剛纔已經看到 WebDAV 服務器配置好後,通過 Windows 2000/XP 的 Web Folder 方式訪問 Web 文件夾就和訪問本地文件夾沒有多少區別。如果應用程序支持 WebDAV 協議(例如 Word 2000),就可以直接打開 Web 文件夾中的文件並且編輯,然後直接保存在原先的 Web 文件夾中。這個用起來簡直就和 Samba 完全一樣。你知道哪一個 FTP 客戶端使用起來有這麼方便嗎?

關於 WebDAV 更多的話題,以後慢慢再說吧。

發佈了70 篇原創文章 · 獲贊 5 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章