Web applications 正确使用HTTP错误代码。550-为什么是5xx而不是4xx?

Web applications 正确使用HTTP错误代码。550-为什么是5xx而不是4xx?,web-applications,http-status-codes,http-error,Web Applications,Http Status Codes,Http Error,今天,一位同事在删除操作中使用了一个550错误,当时用户没有权限,这在我看来很糟糕,因为正如我所知,这种错误在我看来像是客户端(aka 4xx)错误,而不是服务器(aka 5xx) 当查看描述时,它确切地表明它使用正确。而不是401错误,我以前在处理一些“问题”时使用了401错误 401错误的问题是:如果用户A登录,并尝试执行返回401的操作,则可能会建议您必须“登录”,因为您没有访问该http资源的有效凭据。这种方法的问题是,如果用户被登录,服务器知道他没有权限,在这种情况下,看起来像550,

今天,一位同事在删除操作中使用了一个550错误,当时用户没有权限,这在我看来很糟糕,因为正如我所知,这种错误在我看来像是客户端(aka 4xx)错误,而不是服务器(aka 5xx)

当查看描述时,它确切地表明它使用正确。而不是401错误,我以前在处理一些“问题”时使用了401错误

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

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


谢谢

5xx错误是服务器错误。如果用户没有权限,则应为4XX错误

不过你是对的。401错误意味着用户必须登录才能访问。i、 e.需要认证

您正在查找的错误是禁止的403

这对于它是否是因为用户登录没有歧义。这是明确的

从http错误代码()上的wiki(我的重点):

403禁止

请求是有效的请求,但服务器拒绝响应 与401未经授权的响应不同,身份验证将 没有区别。[2]在需要身份验证的服务器上 通常表示提供的凭据已成功访问 已验证,但凭据仍不授予客户端 访问资源的权限(例如,已识别的用户正在尝试 访问受限制的内容)。

同样,根据上面的wiki,没有550错误。我想您可以选择自己实现它,但可能不需要诚实。但是,这应该是标准中定义的服务器错误