当用户可以访问url但不能查询参数时,使用什么https状态码



大家好,

当请求者访问该url但查询参数不正确时,应该使用什么http状态码

我们这样写:

作为用户100,我可以访问http://example.com/bankaccount/get?id=100

但是,我不应该能够看到另一个用户的银行账户,比如通过http://example.com/bankaccount/get?id=200。

应该使用哪个HTTP状态码?

如果访问被禁止,返回403:

服务器理解请求,但拒绝执行。如果请求方法不是HEAD,并且服务器希望公开请求没有被满足的原因,它应该在实体中描述拒绝的原因。如果服务器不希望将此信息提供给客户端,则可以使用状态码404 (not Found)来代替。

但是我不认为明确指定ID有什么意义,因为你已经知道了用户的ID。所以在这种情况下,/bankaccount/get应该足够了

在您的示例中,我将发送302,将他重定向到错误页面,或者在那里发送带有自定义错误页面的200。这将是最用户友好的版本。

编辑:如果您想要选择4xx区域的状态码,请确保web服务器提供适当的错误页面。普通用户不会乐意看到白色屏幕上写着"403 -禁止"。使用自定义错误页面的403可以很好地解决这个问题。

我投票给403 -禁止,因为这是一个合法的请求,但不允许当前用户。

另一方面,如果查询参数名称错误,则可能应该是404。

相关内容

最新更新