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