2014-01-09 6 views
18

RESTful HTTPサービスを構築するときに、レスポンスに204 No Content(コンシューマがDELETEリクエストを発行した後など)を指定すると、レスポンスにはどのようなContent-Typeが含まれますか?204レスポンスはどのContent-Typeで使用する必要がありますか?

これを省略する必要がありますか? 好ましいContent-Typeはありますか? 同じリソースに対するGET要求のContent-Typeは同じである必要がありますか? それはどうでもいいですか?

+0

に関連するか、または重複している可能性があります:[メッセージ本文が空の場合はコンテンツタイプのヘッダーが必要です](http://stackoverflow.com/questions/29784398/should-content-type-header-be-presentメッセージボディは空です) – Helen

+0

はい、もう1つの質問は、質問されてから15ヶ月後に私の質問を複製しました。 –

答えて

25

あなたがコンテンツを持っているとさえ、それがオプションだときは、Content-Typeを持っている:

エンティティボディを含む任意のHTTP/1.1メッセージは、そのボディのメディアタイプを定義するContent-Typeヘッダフィールドを含むべきです。

RFC2616, §7.2.1、SHOULDの使用に注意してください)。

コンテンツがないので、Content-Typeヘッダーを指定する理由はありません。

+0

私はhttps://tools.ietf.org/html/rfc2616#section-7.2.1があなたが探しているものだと信じています。 –

+0

はい、正確です。特定のリファレンスの編集を参照してください:) –

6

実はもう少し話がありますが、実世界(ブラウザ)が理論的世界(仕様)を満たしているときに関係します。私が書いているようにFirefox(ver 38)には、コンテンツタイプのヘッダがない場合でもブラウザがXMLとしてコンテンツを解析しようとするバグがあります。レスポンスコードが204(コンテンツなし)の場合でも同じです。 https://bugzilla.mozilla.org/show_bug.cgi?id=521301

コンテンツタイプヘッダは、コンテンツがないときには意味がありませんが(204コンテンツには存在してはいけません)、とにかくヘッダーを返すのが理にかなっているようです。そして、それが仕様の違反となるのはどこか分かりません。

+1

このバグは今修正されているようです。 –

+0

ありがとうございます。私は「XHRのresponseXMLはnullになり、解析の失敗は単にWebコンソールに記録される」と言います。だから私はまだコンソールのspewを作成していただろう...私は/まだContent-Typeヘッダーを返すと固執するだろう。 –

+0

ブラウザが応答を受け取ったときにエラーが発生していないようですが、ブラウザが* ['responseXML']でXML *を取得しようとすると(https://developer.mozilla.org/en-US/docs/Web/ API/XMLHttpRequest/responseXML)。そうだとすれば、バグかどうかは疑問です。 –

関連する問題