HTTP 406和415错误代码
我在写一个仅接受json的web服务,而且只输出json。HTTP 406和415错误代码
所以我需要返回适当的状态码,如果任何其他格式的要求。
看来,我有两个选择:
- 406 - 不接受
- 415 - 不支持的媒体类型
这将是巨大的,如果有人能赐教,以语义这两个代码。
服务器根据接受请求头(即它们有一个Accept头,它声明它们只有只有需要XML)而无法响应时返回406。
当请求(POST或PUT中的内容)中发送的实体具有不受支持的媒体类型(即它们发送XML)时,服务器返回415。
so .. 406当你不能发送他们想要的,415当他们发送你不想要的东西时。
希望有帮助!
引述RFC2616:
406不可接受
由请求 所标识的资源只能生成响应 实体其中内容 特征不可接受 根据接受头文件sen t请求中的 。
当客户端查询您的服务时,请检查它发送的标头是什么Accept*
;如果它不符合application/json
(或通配符,例如*/*
),请返回此项。回应应该表明“我们只在这里提供JSON”。
415不支持的媒体类型
服务器拒绝,因为 请求的实体是不为 请求方式的请求源支持 的格式以服务 请求。
只是返回415 Unsupported Media Type
应该是“客户端发送的内容不是JSON,不能使用”的最小响应。不知道是否有标题表明“您需要发送JSON”
RFC2616可以帮助您!
http://www.rfc2616.com/#10.4.7
http://www.rfc2616.com/#10.4.16
我会选择415,它适合你的描述相当不错。
编辑:哦。我知道了。 “请求的实体采用请求资源不支持的格式”。因此,如果您有内容请求并且内容类型错误,则应该发出415回应。
- 406如果发送了
Accept
标头,则无法填满。 - 415如果发送了
Content-Type
,则不能使用。
他需要两种不同的场景 – nathan 2010-07-20 21:37:20
我讨厌你可以直接回答的问题。他们在得分方面很出色,但需要快速和正确的回应。 :/ – Cheery 2010-07-20 21:48:15