WebDAV(Web-based Distributed Authoring and Versioning)はHypertext Transfer Protocolを拡張したもので、Webサーバ上のファイル管理を目的とした分散ファイルシステムを実現するプロトコルである。
目次
1 概要
1.1 特徴
2 設計
3 実装
3.1 Webサーバ
3.2 クライアント
4 その他
5 脚注
6 外部リンク
//
WebDAVは、Webサーバに対して直接ファイルのコピーや削除を行ったり、ファイル所有者や更新日時などのファイル情報を取得・設定する機能といった分散ファイルシステムで、HTTP 1.1を拡張したプロトコルで実現される。元々はファイルのバージョン管理機能も内包していたが、後に ⇒RFC 3253で定義されたDelta-Vに分離された。
マイクロソフトによって最初に開発され、1999年2月に ⇒RFC 2518が発表された。2007年6月に発表された ⇒RFC 4918が2008年1月現在最新の定義である。
Webサーバ等でコンテンツのアップロードや更新を行う際に、FTPやscpのような別のサービス・プロトコルを使うことなく、HTTPだけで全てのコンテンツ管理を完結できる。また、HTTPの拡張のみによって実装されているため、ファイヤーウォールによって既存のファイル転送サービスが利用できない環境や、HTTPプロキシを経由した環境でも利用できる。
WebDAVには、元となるHTTP 1.1に加え次のメソッドが存在する。HTTPのヘッダ部でメソッドおよびURIを指定する。ボディ部では、クライアント・サーバ双方ともXMLを用いる。
PROPFIND
指定したURIが示す資源の属性を取得する。具体的には、要求する属性をクライアントがWebサーバに送信すると、サーバはそれに対応した属性値を返す。また、その資源の属性全てを取得することも出来る。
PROPPATCH
指定したURIが示す資源の属性の設定や削除を行う。
MKCOL
指定したURIの場所に新たな資源を作成する。
COPY
指定したURIが示す資源およびその属性値を別のURIにコピーする。
MOVE
指定したURIが示す資源およびその属性値を別のURIに移動する。
LOCK
指定したURIが示す資源のファイルロックを設定する。共有ロックと排他ロックの二種類が利用できる。
UNLOCK
指定したURIが示す資源のロックを解除する。
Webサーバ
Internet Information Services
Windows ServerにおけるWebサーバInternet Information Servicesは、バージョン5.0からWebDAVをサポートしている[1]。
Apache HTTP Server
バージョン1.3から既存のApache HTTP Serverに追加する形でのWebDAVモジュールが存在していた[2]。バージョン2.0からは標準搭載され[3]、設定のみで利用できる。
Ruby on Rails
WebDAVサーバ機能を実現する追加モジュール[4]が存在する。
⇒04WebServer
2003年10月1日公開のバージョン0.40から実装されている。
Windows 98以降は「Webフォルダ」という名称のWebDAVクライアント機能を内蔵し、ネットワーク上に置かれたファイルとしてアクセスできる。
Windows XP SP2以降でBasic認証を行うには、レジストリの設定を変更する必要がある[5]。HTTPSの場合、Windowsエクスプローラではネットワークドライブとして割り当てることはできない。
その他、Windows用のクライアントとして、CarotDAV[6]などがある。
Mac OS X
Finderは、WebDAVクライアント機能を内蔵している。アップルが運営するストレージサービスiDiskへのアクセスには、WebDAVを利用している[7]。
UNIX
GNOMEにおいてファイルアクセス抽象化機能を提供するGnomeVFSは、WebDAVクライアント機能を備えている。NautilusなどファイルアクセスにGnomeVFSを用いているアプリケーションは、シームレスにWebDAVサーバ上のファイルにアクセスできる。
cadaver[8]は、キャラクタユーザインタフェースを持つWebDAVクライアントである。
その他
PerlにおけるHTTP::DAV[9]、PythonのPyDAV[10]などのように、各種スクリプト言語向けのクライアントライブラリが複数存在する。
Subversionやarchでは、リモートリポジトリへのアクセスプロトコルにWebDAVが利用できる。
ハロウィーン文書内でのHTTP-DAV[11][12]とは、WebDAVのことを指している。
脚注^ ⇒Windows 2000 ホーム ‐ Internet Information Services 5.0 技術概要
^ ⇒mod_dav: a DAV module for Apache
^ ⇒Apache 2.0 の新機能の概要
^ ⇒WebDAV in Ruby on Rails