401 和 403 状态码
大约 2 分钟约 569 字
401 Unauthorized(未授权)
- 含义:表示客户端请求的资源需要身份验证,但身份验证失败或未提供正确的认证信息。
- 触发情况:当服务器要求用户提供凭据(例如用户名和密码),但用户未提供凭据,或提供的凭据无效时,服务器返回 401。
- 处理方式:
- 客户端应该提供有效的凭据,如登录信息、API 密钥或 token。
- 一般情况下,服务器会在响应中包含一个
WWW-Authenticate
头,提示客户端应该如何提供凭证。
示例场景:
- 用户访问一个需要登录才能查看的页面,但没有登录或登录信息无效。
- API 请求缺少认证信息(如缺少 Authorization Header 或 token 错误)。
403 Forbidden(禁止访问)
- 含义:表示服务器理解客户端的请求,但服务器拒绝执行该请求。与 401 不同,403 表示即使客户端提供了有效的身份验证信息,访问依然被拒绝。
- 触发情况:服务器明确拒绝访问,可能是由于权限不足、禁止访问的资源或其他原因。
- 处理方式:
- 客户端不需要提供凭据,因为凭据本身有效,问题出在权限上。通常这意味着用户没有足够的权限访问该资源。
- 403 错误没有特别的解决方法,通常是由管理员控制的权限设置导致的,需要联系管理员以获得访问权限。
示例场景:
- 用户登录了系统,但尝试访问其没有权限查看的页面(例如管理员页面)。
- 服务器明确拒绝了用户对某个资源的访问请求(例如文件系统权限或 API 权限)。
总结
- 401 Unauthorized:客户端未提供正确的认证信息或认证失败,通常可以通过正确的凭据重新尝试访问。
- 403 Forbidden:客户端即使提供了正确的认证信息,但因为权限问题,服务器拒绝访问该资源。
简单来说,401
是「需要认证」,而 403
是「认证有效,但没有权限」。