204 No Content コンテンツなしの成功応答を示すHTTPステータスコード

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

204 No Contentについて

204 No Contentの概要

コンテンツなしの成功応答を示すHTTPステータスコード

204 No Content

概要 204 No Contentは、リクエストが正常に処理されたものの、レスポンスボディに返すべき内容がない場合に使用されるHTTPステータスコードです。このコードは、リクエストに対するレスポンスとして、追加のデータを返す必要がない場合に適しています。

意味 クライアントのリクエストは正常に処理されましたが、レスポンスボディには何も返されません。

204 No Contentはどのような時に返されるか

  • リクエストが成功したが、返すべきデータがない場合
  • サーバーがリクエストを受理し、リソースの状態に変化がない場合
  • 非同期処理をトリガーするだけで、即座にレスポンスを必要としない場合

204 No Contentの具体例

リソースの更新リクエスト

PUT /api/resource/123 HTTP/1.1  
Host: example.com  
Content-Type: application/json  

{ "name": "Updated Resource", "status": "active" }  

レスポンス例:

HTTP/1.1 204 No Content  

解説: クライアントがPUTリクエストでリソースを更新し、リクエストが成功した場合に返されることがあります。この場合、サーバーはレスポンスボディを返す必要がなく、204ステータスコードのみで成功を通知します。

リソースの削除リクエスト

DELETE /api/resource/123 HTTP/1.1  
Host: example.com  

レスポンス例:

HTTP/1.1 204 No Content  

解説: クライアントがDELETEリクエストでリソースを削除し、削除が成功した場合に返されます。この場合も、削除の成功を通知するだけで追加情報を返す必要がないため、204が使用されます。

注意点

204 No Contentを返す際の注意点:

  • レスポンスボディを含めない
    204レスポンスには、ボディが含まれていない必要があります。ボディが含まれるとクライアントが混乱する可能性があります。
  • ヘッダーの適切な設定
    コンテンツ関連のヘッダー(例: Content-TypeContent-Length)を省略または正しく設定してください。

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

204 No Contentと関連性のあるステータスコードについて解説します。

  • 200 OK: リクエストが成功し、レスポンスボディにデータが含まれる場合に使用されます。
  • 202 Accepted: リクエストが受理されたが、処理がまだ完了していない場合に使用されます。

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