WebDAV
From Wikipedia, the free encyclopedia
WebDAV(Web-based Distributed Authoring and Versioning、ウェブダブ)はHTTPを拡張したもので、Webサーバ上のファイル管理を目的とした分散ファイルシステムを実現するプロトコルである。
概要
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は1996年にジム・ホワイトヘッドがワールドワイドウェブコンソーシアム(W3C)と協力して、ワールドワイドウェブ上での分散型オーサリングの問題について関心のある人々と話し合うための会議を開催したことから始まった[3]。ティム・バーナーズ=リーのウェブの当初の構想は、読み書き両方の媒体を含むものであった。実際、バーナーズ=リーの最初のウェブブラウザであるWorldWideWebは、ウェブページを表示および編集することができたが、ウェブが成長するにつれて、ほとんどのユーザーにとって読み取り専用の媒体となった。ホワイトヘッドとそれを賛同する人々は、そうした状況を変えたいと考えた[4]。
これらの会合の結果、IETFワーキンググループが結成された。IETFとしてもこの新たな取り組みは、IETFが標準化に着手していたHTTPの拡張につながるものだったためである。プロトコルの開発が始まると、分散オーサリングとバージョン管理の両方を同時に扱うには膨大な作業量が必要となり、タスクを分離する必要があることが明らかになった。WebDAVグループは分散オーサリングに注力し、バージョン管理は将来的に取り組むことにした。
WebDAVワーキンググループは、インターネット技術運営グループ(IESG)がRFC 2518の増分更新を承認した後、2007年3月に作業を終了しました。当時未完成だったその他の拡張機能(BINDメソッドなど)は、正式なワーキンググループとは関係なく、それぞれの担当者が完成させた。
設計

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をサポートしている[5]。
- Apache HTTP Server
- バージョン1.3から既存のApache HTTP Serverに追加する形でのWebDAVモジュールが存在していた[6]。バージョン2.0からは標準搭載され[7]、設定のみで利用できる。
- Ruby on Rails
- WebDAVサーバ機能を実現する追加モジュール[8]が存在する。
- 04WebServer
- 2003年10月1日公開のバージョン0.40から実装されている。
クライアント
Windows
Windows 98以降は「Webフォルダ」という名称のWebDAVクライアント機能を内蔵し、ネットワーク上に置かれたファイルとしてアクセスできる。
Windows XP SP2以降でBasic認証を行うには、HTTPS (SSL) での接続が必要であり、HTTP接続ではレジストリの設定を変更する必要がある[9][10]。
Windows VistaではWebDAV機能は動作しない。「Web フォルダのソフトウェア更新プログラム: KB907306」を適用すれば32bit版に限り[11]利用可能であったが[12]、これも2022年現在は利用できない。
Windows 7以降は再び標準で利用可能となっている[13]。
2023年11月にマイクロソフトからWebDAV機能は非推奨とされ、標準では利用不可となった。[14]
その他、Windows用のクライアントとして、CarotDAV[15]やNetDrive[16]、TeamFileクライアント[17]などがある。
OS X
Finderは、WebDAVクライアント機能を内蔵している。Appleが運営するストレージサービスiDiskへのアクセスには、WebDAVを利用している[18]。
UNIX
GNOMEにおいてファイルアクセス抽象化機能を提供するGnomeVFSは、WebDAVクライアント機能を備えている。GNOMEのファイルなどファイルアクセスにGnomeVFSを用いているアプリケーションは、シームレスにWebDAVサーバ上のファイルにアクセスできる。
cadaver[19]は、キャラクタユーザインタフェースを持つWebDAVクライアントである。
その他
PerlにおけるHTTP::DAV[20]、PythonのPyDAV[21]などのように、各種スクリプト言語向けのクライアントライブラリが複数存在する。
Subversionやarchでは、リモートリポジトリへのアクセスプロトコルにWebDAVが利用できる。