207 Multi-Status 複数の操作結果を含むWebDAV拡張HTTPステータスコード

スポンサーリンク
スポンサーリンク

207 Multi-Statusについて

207 Multi-Statusの概要

複数の操作結果を含むHTTPステータスコード

207 Multi-Status

概要 207 Multi-Statusは、1つのリクエストに対して複数のリソースに関するステータスを返す場合に使用されるHTTPステータスコードです。このコードは主にWebDAVプロトコルで使用され、レスポンスはXML形式で個々のリソースに関する情報を提供します。

意味 クライアントのリクエストに対し、複数のリソースに関するステータスが返されます。

207 Multi-Statusはどのような時に返されるか

  • WebDAVの操作で複数のリソースに対する結果をまとめて返す場合
  • リクエストで指定されたリソースごとに異なるステータスが必要な場合
  • バッチ処理の結果を一括してレスポンスする場合

207 Multi-Statusの具体例

WebDAVによる複数リソースのステータス報告

PROPFIND /files/ HTTP/1.1  
Host: example.com  

レスポンス例:

HTTP/1.1 207 Multi-Status  
Content-Type: application/xml; charset=UTF-8  

<?xml version="1.0" encoding="UTF-8"?>
<multistatus xmlns="DAV:">
  <response>
    <href>/files/file1.txt</href>
    <status>HTTP/1.1 200 OK</status>
  </response>
  <response>
    <href>/files/file2.txt</href>
    <status>HTTP/1.1 404 Not Found</status>
  </response>
</multistatus>

解説: クライアントがディレクトリ内のすべてのリソースのプロパティを取得しようとした場合に207ステータスコードが返されます。レスポンスはXML形式で、各リソースのステータスを個別に示します。

バッチ操作の結果

POST /batch HTTP/1.1  
Host: example.com  
Content-Type: application/json  

{ "operations": [ 
    { "action": "delete", "resource": "/file1.txt" }, 
    { "action": "delete", "resource": "/file2.txt" } 
  ] 
}  

レスポンス例:

HTTP/1.1 207 Multi-Status  
Content-Type: application/json  

{ "results": [ 
    { "resource": "/file1.txt", "status": "200 OK" }, 
    { "resource": "/file2.txt", "status": "404 Not Found" } 
  ] 
}

解説: クライアントが複数の操作をリクエストし、それぞれの結果が異なる場合に207が使用されます。レスポンスはJSON形式で、各リソースの結果が返されます。

注意点

207 Multi-Statusを返す際の注意点:

  • レスポンスフォーマットの統一
    XMLやJSONなど、一貫したフォーマットで個々のリソースの結果を提供する必要があります。
  • 個別ステータスの明確化
    各リソースのステータスを詳細に記述し、クライアントが結果を正確に解析できるようにします。

関連するHTTPステータスコードとの比較

207 Multi-Statusと関連性のあるステータスコードについて解説します。

  • 200 OK: 単一のリソースに対して成功を示すレスポンスコードです。
  • 404 Not Found: 指定されたリソースが見つからない場合に使用されますが、207の中で個別に使用されることがあります。

これらの違いを理解することで、適切な用途で207ステータスコードを利用できます。