メインコンテンツまでスキップ

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)

登録されたコンテンツ

  1. DAV URI スキームの登録: 「opaquelocktoken」
  2. HTTP ヘッダーの登録: DAV、Depth、Destination など
  3. HTTP ステータスコード: 207、422、423、424、507
  4. 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 アクセス制御