400 BAD request HTTP错误代码的含义?

我有一个JSON请求,我将其发布到一个HTTP URL上。

在 "requestedResource "字段存在但""Roman" "是该字段的无效值的情况下,这是否应该被视为`400'?

[{requestedResource:"Roman"}] 

如果"blah"字段根本不存在,这是否应被视为400

[{blah:"Roman"}]

400意味着该请求是畸形的。换句话说,由客户发送给服务器的数据流没有遵循规则。

在带有JSON有效载荷的REST API的情况下,400通常,而且我认为是正确的,用来表示根据服务的API规范,JSON在某些方面是无效的。

根据这一逻辑,你提供的两种情况都应该是400's。

想象一下,这只是XML而不是JSON。在这两种情况下,XML都不会通过模式验证--要么是因为未定义的元素,要么是因为不恰当的元素值。这将是一个糟糕的请求。这里也一样。

评论(6)

来自w3.org

10.4.1 400 错误请求

由于语法不规范,服务器无法理解该请求。 语法。客户端不应重复该请求而不进行 修改。

评论(5)

思考一下期望。

作为一个客户端应用程序,你希望知道服务器端是否出了问题。如果服务器需要在blah丢失或requestedResource值不正确时抛出一个错误,那么400错误将是合适的。

评论(0)