応答本体はHTTP-DELETE要求に許可されていますか?


82

応答コード200は常に応答本体を許可すると思いますが、DELETE要求の応答本体についての明示的な言及は見つかりません。

回答:


139

これはRFCで明示的に言及されています

簡単な答えは次のとおりです。

あなたは含めるべきであるあなたが戻る場合は削除済みアイテム/リソースを記述するエンティティとレスポンスボディを200に

202は、非同期の要求/応答の戻りステータスのようなものです。

204は、応答本文を含めないことを明示的に示しています


2
HTTP仕様を参照することに賛成します。また、HTTP仕様を更新し、ここで多くの問題を明確にしていることにも注意してください。tools.ietf.org/ wg / httpbis
Darrel Miller

9
+1ただし、仕様では、応答本文に「ステータスを説明する」エンティティが含まれていて、削除されたエンティティが含まれていない場合は、200okを返すことができるとされています。
naikus 2012年

1
これは、実際には「記述したエンティティが含ま言う状態を」 -で削除するエンティティを返すので、「削除」フラグが完全に有効と思われます。
Ryan Wheale 2014年

202(承認済み)応答は本文に含まれている必要がありますか?
Soullivaneuh 2016

15

はい、通常、W3C仕様に従って200応答コードで応答する必要があります。

9.7削除

DELETEメソッドは、オリジンサーバーがRequest-URIで識別されるリソースを削除することを要求します。この方法は、オリジンサーバーへの人間の介入(または他の手段)によって上書きされる場合があります。オリジンサーバーから返されたステータスコードがアクションが正常に完了したことを示している場合でも、クライアントは操作が実行されたことを保証できません。ただし、サーバーは、応答が与えられたときにリソースを削除するか、アクセスできない場所に移動することを意図していない限り、成功を示すべきではありません(SHOULDNOT)。

成功した応答は、ステータスを説明するエンティティが応答に含まれている場合は200(OK)、アクションがまだ実行されていない場合は202(承認済み)、アクションが実行されているが応答に含まれていない場合は204(コンテンツなし)である必要があります。エンティティ。

リクエストがキャッシュを通過し、Request-URIが現在キャッシュされている1つ以上のエンティティを識別する場合、それらのエントリは古いものとして扱われるべきです(SHOULD)。このメソッドへの応答はキャッシュできません。


2
あなたはその言語を読み間違えました。コードは昇順でリストされており、この順序は優先応答を意味するものではありません。このテキストで説明されているように、200、202、または204の各応答は同等に受け入れられます。SHOULDは、コードが通常の規則で実装されることを意味するだけです(たとえば、200には本体が含まれ、204には含まれません)。
ジョージショー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.