web-dev-qa-db-ja.com

RESTでの正常なDELETEステートメントのHTTPステータス戻りコードとは何ですか?

Springの処理方法を勉強していますREST= Webサービス(ただし、Spring関連の回答か、より一般的にはREST =コンセプト)。

だから私の疑問は:正常なDELETEステートメントのHTTPステータス戻りコードとは正確には何ですか?

204または2ですか?

2はリクエストが正しく処理されたことを意味することを知っていますが、オンラインで読むと、私はそれを期待しているようですGETが成功した後、コンテンツを返した後削除後ではありません。

どこかで204ステータスが取得されることがわかりましたPUTまたはDELETEが成功した後。本当ですか?わかりません。つまり、応答が空です、空の応答は、PUTまたはDELETE操作が成功したことを意味するのですか?

23
AndreaNobili

HTTPステータスコードが各メソッドに対して正しいものであるという厳密なルールはありません。それは正確に何が起こったか、どの情報をクライアントに送信する必要があるかなどに依存します。いくつかの例を考えることができます。

  • 成功したDELETE、詳細情報なし。 204 No Content

  • DELETEは成功しましたが、削除する必要がある関連する孤立リソースに関する警告があります。 200 OK

  • DELETEリクエストを受け入れましたが、時間がかかる可能性があり、非同期で実行します。クライアントは後で確認する必要があります。 202 Accepted

  • DELETEリクエストを受け入れましたが、リソースを削除できず、代わりにURIがデフォルトにリセットされます。 205 Reset Content

53
Pedro Werneck

空の応答本文は、削除が成功したことを意味するのではなく、正常な削除(通常)は、応答本文が空であることを意味します。

RESTful APIには公式のステータスコードリストはありませんが、通常、何かを削除した後に応答本文を返す正当な理由がないため、204が正常な削除に適した応答コードであることに同意します。

一般に、操作が成功し、応答本文が空の場合、204を返します。操作が成功し、応答本文が空でない場合、200を返します

5
Neil McGuigan

空の応答does n'tは、操作が成功したことを意味し、HTTPエラーコードは成功/失敗を示し、応答本文にはデータが含まれる場合と含まれない場合があります。

応答本文mayは、リクエストに関する追加情報、たとえば、UIに表示する特定のメッセージ、情報に関する統計情報またはタイミング情報などを含みます。しかし、それはhave toではなく、ボディの目的は情報/診断が存在する場合です。

3
Dave Newton

2xxは、リクエストが成功したことを表します。 xxにより、何が起こったのか(サーバーが何をしたのか、または何を返しているのか)をより具体的にすることができます。

1
honerlawd