2013-05-13 127 views
4

今天一个共同工作使用了一个删除动作550错误,当用户没有权限,最初看起来不好,因为我知道,有点错误看起来像客户端(又名4xx)错误对我而不是服务器(aka 5xx)。正确使用HTTP错误代码。 550 - 为什么它是5xx而不是4xx?

查看说明时,它确切地表明它正确使用。而不是401错误,我之前使用了一些“问题”。

401错误的问题是:如果用户A登录并尝试执行返回401的操作,则可能表明您必须“登录”,因为您没有有效的凭据来访问该http资源。这种方法的问题是,如果用户登录,服务器知道他没有权限,在这种情况下,看起来像550更合适,但对我来说不应该在这里使用550错误场景。

问题是: 在基于web的应用程序中550错误的正确使用(如果有)是什么。我知道它用于FTP和SMTP中继的使用。 如果某些登录用户,发送一个不允许的动作请求,应该返回哪个错误?

谢谢!

回答

7

5xx错误是SERVER错误。如果用户没有权限,则应该是4XX错误。

但是你是对的。 401错误意味着用户必须登录才能访问。即需要认证。

你要找的错误是403禁止

这已超过任何含糊其是否是因为用户登录或没有。其明确的裁减。

从上HTTP错误代码的维基(http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)(重点煤矿):

403禁止

请求是一个有效的请求,但服务器拒绝回应 它[2]。与401未经授权的回复不同,身份验证将使 没有区别。[2]在需要身份验证的服务器上,此 通常意味着所提供的凭证已成功通过 身份验证,但凭证仍不会授予客户端访问资源的权限(例如,识别的用户尝试访问受限制的内容的 )。

再次,根据上述维基,没有这样的事情,如550错误。我想你可以选择自己实现它,但可能不需要诚实。它应该是标准中定义的服务器错误。

相关问题