403 Forbidden vs 401 Unauthorized HTTP响应

发布时间 2023-10-26 20:14:32作者: 小满独家

内容来自 DOC[ https://q.houxu6.top/?s=403 Forbidden vs 401 Unauthorized HTTP响应](https://q.houxu6.top/?s=403 Forbidden vs 401 Unauthorized HTTP响应)

对于一个已经存在的网页,但是用户没有足够的权限(没有登录或者不属于合适的用户组),应该提供什么样的HTTP响应?

401 Unauthorized

403 Forbidden

还是其他的东西?

到目前为止,我阅读到的关于这两个响应的信息并不是很清楚。对于每个响应,哪些用例是适用的?


Daniel Irvine的清晰解释:

存在一个问题关于 401 Unauthorized,即用于身份验证错误的HTTP状态码。问题就在这里:它用于身份验证,而不是授权。
收到401响应是服务器告诉您,“您没有
经过身份验证–要么根本没有经过身份验证,要么身份验证
不正确–但请重新进行身份验证并重试。”为了帮助您,
它通常会包含一个 WWW-Authenticate 头,描述如何进行身份验证。

这是您的Web服务器通常返回的响应,而不是您的Web应用程序。

它也是一个非常临时的响应;服务器要求您再次尝试。

因此,对于授权,我使用 403 Forbidden 响应。它是
永久的,与我的应用逻辑相关联,并且比401更具体。

收到403响应是服务器告诉您,“很抱歉。我知道
您是谁–我相信您所说的话–但是您没有权限访问此资源。也许如果您礼貌地向系统管理员询问,您将获得权限。但请不要再打扰我,直到您的困境改变。”

总之, 401 Unauthorized 响应应该用于缺少或错误的身份验证,而 403 Forbidden 响应应该在用户经过身份验证但无权在给定资源上执行请求操作时使用。

另一个 漂亮的图表格式 HTTP状态码应该如何使用。