INDEX
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ステータスコードを利用できます。