[经过大量的Google搜索和Stackoverflowing之后,我仍然不清楚,因为许多文章和问题/答案过于笼统(包括403 Forbidden vs 401 Unauthorized HTTP responses,这不是我的用例专用的。]
问题:当用户尚未登录并请求查看一些仅应向登录用户显示的页面时,正确的HTTP状态代码是什么?
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