WebDav协议基于Http 1.1协议进行扩展,在包含原有的GET ,POST,HEAD等HTTP标准请求方法,增加了:PROPFIND,PROPPATCH,MKCOL,COPY,MOVE,LOCK,UNLOCK等一些新的请求方法,使应用程序可以直接对Web Server的文件进行读写。在协议定义中,还包括对文件进行锁定,解锁,版本控制等方法。
在IIS中,已经包含了对WebDav协议的支持,用户只需要启用WebDav扩展,即可以通过WebDav客户端(Windows资源管理器)等连接站点的文件服务,直接对站点上的文件进行操作。这种由IIS拖管的WebDav来达到对文件的操作,在目前可能并不会被很多人采用,因为在安全性方面得不到很好的保证。无法屏蔽某些不希望被用户控制的文件,无法程序干预等。
但是在WebDav作为一些标准的,开放的协议,我们完全可以通过这套协议,根据程序的需求来实现WebDav的请求响应来提供WebDav服务,利用标准的WebDav客户端方便用户进行网站内容的维护。
在Kooboo CMS中,有一种内容,叫二进制内容(Binary Content),其实就是文件内容。因为在Kooboo中,不管文本的结构化内容还是非文本的文件内容都被当成普通内容进行管理和维护。文件内容可以被文本内容引用,作为它的附件,也可以单独使用,比如做相册之类的东西。而文件内容的维护一般都非常简单,只需要上传文件即可,而在web界面上无法实现成批上传和拖拽上传。通过实现WebDav协议,我们就可以通过WebDav客户端来维护这些文件内容,提高用户体验。
从实现上,我们无需完全自己去开发一套WebDav框架,这里已经有了WebDav协议的开源实现:WebDAV.NET Server Framework 。在这套框架已经帮我们处理了协议底层请求,我们只需处理应用逻辑即可。
更多WebDav在Kooboo CMS中的运用,请参考文档:http://www.kooboo.com/documents/detail/WebDAV和Kooboo CMS源码实现。
相关链接: