哪个 HTTP 状态码表示用户名或密码不正确?

Posted

技术标签:

【中文标题】哪个 HTTP 状态码表示用户名或密码不正确?【英文标题】:Which HTTP status code to say username or password were incorrect? 【发布时间】:2014-11-23 11:46:10 【问题描述】:

我正在实现一个简单的注册/登录模块。

在测试用户凭据时,我开始考虑哪种 HTTP 状态代码适用于用户发送带有错误凭据的请求的情况。

起初,我认为 401 Unauthorized 会是一个不错的状态码,但似乎在用户试图在未经授权的情况下获取某些资源时使用它会更好。

之后,我切换到 409 冲突

仅在预期用户可能能够解决冲突并重新提交请求的情况下才允许使用此代码。

所以,朋友们,请给我一个建议,应该使用哪个状态码。

【问题讨论】:

未经授权使用资源应该是403 Forbidden。 @JeremyHolovacs "HTTP 403 Forbidden 客户端错误状态响应码表示服务器理解请求但拒绝授权。此状态类似于 401,但在这种情况下,重新认证会使没有区别。访问被永久禁止并与应用程序逻辑相关联,例如对资源的权限不足。" 【参考方案1】:

如果您使用 RFC 7235 定义的 HTTP 身份验证,401 将是正确的(对于缺少或不正确的凭据)。

否则,使用 403。

【讨论】:

以上是关于哪个 HTTP 状态码表示用户名或密码不正确?的主要内容,如果未能解决你的问题,请参考以下文章

HTTP状态码302303307区别

http协议中各个响应状态返回值的含义

http常见的状态码

http状态码

HTTP状态码

HTTP常见错误返回代码