401和403的区别 - pod4g/tool GitHub Wiki
如果请求已包含授权凭证,则 401 响应指示已拒绝这些凭证的授权。
服务器理解了该请求,但拒绝执行该请求。
401 Unauthorized出现问题,身份验证错误的 HTTP 状态代码。就是这样:它用于身份验证,而不是授权。收到 401 响应的服务器会告诉您:“您未通过身份验证 - 完全没有身份验证或身份验证不正确 - 但请重新进行身份验证并重试。” 为了帮助您,它将始终包含一个WWW-Authenticate标头,该标头描述了如何验证。
这是通常由您的 Web 服务器而不是 Web 应用程序返回的响应。
这也是非常临时的。服务器要求您重试。
因此,对于授权,我使用403 禁止响应。它是永久的,与我的应用程序逻辑相关,并且比 401 更具体。
服务器收到 403 响应,告诉您:“很抱歉。我知道您是谁 - 我相信您说的是谁 - 但您只是没有访问此资源的权限。也许如果您很好地询问系统管理员,您将获得许可。但是请不要再困扰我,直到您的困境改变为止。”
总之,当用户通过身份验证但无权对给定资源执行请求的操作时,应使用401 未经授权的响应来进行丢失或错误的身份验证,然后使用403 禁止响应。
比如水平权限校验未通过,返回403,即你是正常登陆用户,但这个数据不属于你