什么内容类型应该使用204无响应?

时间:2014-01-09 19:27:53

标签: http rest

在构建RESTful HTTP服务时,响应是否为204 No Content(例如,在Consumer发出DELETE请求之后),响应包含哪些Content-Type?

是否应该省略? 是否有首选的内容类型? 它应该与同一资源的GET请求的内容类型相同吗? 这无关紧要吗?

2 个答案:

答案 0 :(得分:37)

当您有内容时,您有Content-Type,即使这样,它也是可选的:

  

包含实体主体的任何HTTP / 1.1消息都包含一个Content-Type标头字段,用于定义该主体的媒体类型。

(来自RFC2616, §7.2.1,请注意使用SHOULD)。

由于没有内容,因此没有理由指定Content-Type标题。

答案 1 :(得分:7)

嗯,这个故事还有一点,它涉及当现实世界(浏览器)符合理论世界(规范)时。似乎Firefox(我编写的第38版)有一个错误,如果没有内容类型标题,浏览器会尝试将内容解析为xml,即使响应代码为204(无内容)。见https://bugzilla.mozilla.org/show_bug.cgi?id=521301

因此,虽然内容类型标题在没有内容(并且不能在204上有内容)时没有多大意义,但无论如何返回某个标题似乎是有意义的。而且我不知道这会违反规范。