RFC 4918 第 11-25 章の技術的要点の概要
本文書は RFC 4918 の第 11-25 章の主要な技術的内容(ステータスコードの拡張、XML 定義、準拠要件など)を要約します。
11. ステータスコードの拡張 (Status Code Extensions)
WebDAV は 5 つの新しい HTTP ステータスコードを導入します。
11.1 207 Multi-Status
用途: バッチ操作の複合応答
シナリオ: PROPFIND、PROPPATCH、COPY、MOVE、DELETE
HTTP/1.1 207 Multi-Status
Content-Type: application/xml
<D:multistatus xmlns:D="DAV:">
<D:response>
<D:href>/resource1</D:href>
<D:status>HTTP/1.1 200 OK</D:status>
</D:response>
<D:response>
<D:href>/resource2</D:href>
<D:status>HTTP/1.1 403 Forbidden</D:status>
</D:response>
</D:multistatus>
11.2 422 Unprocessable Entity
意味: リクエストの形式は正しいがセマンティクスエラー
シナリオ: XML 形式は正しいがビジネスルールに違反
11.3 423 Locked
意味: ターゲットリソースがロックされている
シナリオ: ロックされたリソースを変更しようとした
11.4 424 Failed Dependency
意味: 前の操作が失敗したため現在の操作を実行できない
シナリオ: バッチ操作での依存関係の失敗
11.5 507 Insufficient Storage
意味: サーバーのストレージ容量が不足
シナリオ: リソースを保存できないか操作を完了できない
14. XML 要素の定義 (XML Element Definitions)
WebDAV は完全な XML 語彙を定義します。
主要な要素カテゴリ
1. リクエスト要素:
propfind— プロパティ検索リクエストpropertyupdate— プロパティ更新リクエストlockinfo— ロック情報prop— プロパティリスト
2. レスポンス要素:
multistatus— マルチステータス応答response— 単一リソース応答propstat— プロパティステータス
15. DAV プロパティ (DAV Properties)
WebDAV は標準プロパティセットを定義し、ライブプロパティとデッドプロパティに分類されます。
コアライブプロパティ
| プロパティ名 | タイプ | 説明 |
|---|---|---|
creationdate | ライブ | リソース作成日 |
displayname | ライブ/デッド | 表示名 |
getcontentlength | ライブ | コンテンツ長 |
getcontenttype | ライブ | コンテンツタイプ |
getetag | ライブ | エンティティタグ |
getlastmodified | ライブ | 最終更新時刻 |
lockdiscovery | ライブ | ロック発見情報 |
resourcetype | ライブ | リソースタイプ |
supportedlock | ライブ | サポートされるロックタイプ |
18. DAV 準拠クラス (DAV Compliance Classes)
クラス 1(基本 WebDAV)
必須サポート:
- PROPFIND / PROPPATCH メソッド
- MKCOL メソッド
- コレクションに対する GET / HEAD の拡張
- PUT / DELETE の拡張
- COPY / MOVE メソッド
- DAV ヘッダーが「1」を返す
- 第 15 章で定義されたすべてのプロパティ
クラス 2(ロックを含む)
クラス 1 を含み、さらに:
- LOCK / UNLOCK メソッド
- Timeout ヘッダーのサポート
- If ヘッダーのサポート
- Lock-Token ヘッダー
- DAV ヘッダーが「1, 2」を返す
20. セキュリティに関する考慮事項 (Security Considerations)
主なセキュリティ問題
1. 認証と認可:
- 適切な認証メカニズムを使用しなければならない
- きめ細かいアクセス制御を実装する
- 機密プロパティを保護する
2. サービス拒否(DoS):
- Depth: infinity リクエストを制限する
- リソースクォータを実装する
- タイムアウトメカニズム
3. XML セキュリティ:
- XML エンティティ展開攻撃を防ぐ
- XML ドキュメントサイズを制限する
- 外部エンティティを無効にする
21. IANA に関する考慮事項 (IANA Considerations)
登録されたコンテンツ
- DAV URI スキームの登録: 「opaquelocktoken」
- HTTP ヘッダーの登録: DAV、Depth、Destination など
- HTTP ステータスコード: 207、422、423、424、507
- XML 名前空間: 「DAV:」
25. 参考文献 (References)
25.1 規範的参考文献
- RFC 2119: キーワードの定義
- RFC 2616: HTTP/1.1
- RFC 3986: URI 汎用構文
- REC-XML: XML 1.0 仕様
- REC-XML-NAMES: XML 名前空間
25.2 参考情報
- RFC 2518: WebDAV 1.0(本仕様によって廃止)
- RFC 3253: WebDAV バージョン管理
- RFC 3744: WebDAV アクセス制御