Nei*_*eil 13 ajax http http-status-codes
如果请求URL不使用AJAX,应该返回什么状态代码?400?
我觉得403 Forbidden
最好.
501 Not Implemented
不适合,因为资源已实施,但不适合这种请求.
400 Bad Request
也不是一个好的选择,因为根据规范,这意味着"由于语法格式错误,服务器无法理解请求",这不是这里的情况.
我不相信你通过监管这个价值来帮助任何人.我更喜欢在所有情况下尝试发送有用数据的理念.然而,想象一下我们确实需要政策的类似情况并不是一件容易的事.例如,假设我们有一个可以根据mime类型返回JSON或XML的服务,如果指定了一个意外的mime类型,最好返回一个明确的响应代码.
W3 说
4xx代码用于客户端似乎有错误的情况,5xx代码用于服务器知道服务器出错的情况.通常不可能区分这些情况,因此差异只是信息性的.
主体部分可以包含描述人类可读形式的错误的文档.该文档采用MIME格式,可能只能是text/plain,text/html,也可能是请求中指定为可接受的格式.
所以很明显响应应该是4xx,而不是客户端提供无效请求.我会选择400 BAD REQUEST并确保返回的文本解释了为什么请求被认为是错误的.
W3表示400:请求语法错误或者本质上不可能满足,事实的确如此.