401未经授权vs 403禁止:用户未登录时,正确的状态码是哪个?

问题描述 投票:19回答:4

[经过大量的Google搜索和Stackoverflowing之后,我仍然不清楚,因为许多文章和问题/答案过于笼统(包括403 Forbidden vs 401 Unauthorized HTTP responses,这不是我的用例专用的。]

问题:当用户尚未登录并请求查看一些仅应向登录用户显示的页面时,正确的HTTP状态代码是什么?

http-status-code-403 http-status-codes http-status-code-401
4个回答
33
投票
简短回答:

401未经授权

说明:
虽然我们首先知道的是

authentication(是否有用户

login-in>?),然后我们将进入authorization(他是否具有所需的 privilege还是不?),但这是使我们犯错误的关键:

但不是有关授权而不是身份验证的“ 401未经授权”吗?

返回编写HTTP规范(RFC 2616)时,两个单词可能不众所周知,它们是不同的。从401有关的说明和其他支持文本身份验证。

来自HTTP Status Codes 401 Unauthorized and 403 Forbidden for Authentication and Authorization (and OAuth)

所以,如果我们要重写标准!充分关注每个单词,我们可以参考下表:

Status Code | Old foggy naming | New clear naming | Use case +++++++++++ | ++++++++++++++++ | ++++++++++++++++ | ++++++++++++++++++++++++++++++++++ 401 | Unauthorized | Unauthenticated | User has not logged-in 403 | Forbidden | Unauthorized | User doesn't have enough privilege


6
投票

0
投票

-1
投票
© www.soinside.com 2019 - 2024. All rights reserved.