原文: https://www.freecodecamp.org/news/http-error-403-forbidden-what-it-means-and-how-to-fix-it/

上网时收到任何错误代码都可能是一种令人沮丧的经历。虽然我们已经习惯了 404 Not Found 的页面,甚至在我们访问不到的时候经常有可爱的占位符页面来令人开心,但更令人费解的错误之一是 403: Forbidden response。

它是什么意思?

简单地说:服务器已经确定你不能访问你所请求的东西。

根据 RFC 7231

403(禁止)状态代码表明服务器理解该请求,但拒绝授权......如果请求中提供了认证凭证,服务器认为它们不足以授予访问权。

403 响应属于 HTTP 响应的 4xx 范围:客户端错误。这意味着你或你的浏览器做错了什么。

如果你遇到这种情况,通常意味着你已经在服务器上验证了自己的身份,也就是说,你已经登录了,但你所请求的资源需要有更高权限的人。

最常见的情况是,你可能是以标准用户身份登录的,但你正试图访问一个管理员页面。

你如何解决这个问题?

作为一个不能访问服务器的用户,你实际上只有几个选择:

用一个更合适的账户认证

同样,根据 RFC 7231 的规定:

如果在请求中提供了认证凭证,服务器认为它们不足以授予访问权,客户端不应该自动用相同的凭证重复请求,客户端可以用新的或不同的凭证重复请求。

这是唯一能让你立即纠正问题的方法。

如果你在一个网站上有多个账户,你试图做一些你通常可以做的事情,但这次被禁止做,这是你应该尝试的选项。用你的其他账户登录。

你可能会发现,这个选项也需要清除你的缓存或 cookies,以防以另一个用户身份登录时不能充分刷新之前的认证令牌。但这通常是不必要的。

作为一个无奈之举,你也可以尝试禁用可能干扰你使用该网站的浏览器扩展。然而,这是不可能的,因为 403 意味着你已被认证,但没有被授权。

通知网站所有者返回的是 403

如果你完全预计你应该能够访问有关资源,但你仍然看到这个错误,明智的做法是让网站背后的团队知道——这可能是他们的一个错误。

再来看看 RFC 7231 的内容:

然而,一个请求可能因为与证书无关的原因而被禁止。

无意中发生这种情况的一个常见原因是,服务器对特定的 IP 地址或地理区域使用了允许或拒绝名单。

他们可能有很好的理由阻止你在他们严格定义的参数之外的访问,但也可能只是一个疏忽。

放弃

也许你只是不应该能够访问该资源。这种情况时有发生。互联网很大,有一些区域不允许你个人访问,这是合理的。

你可以在思考为什么你的原始请求被禁止时转而访问 http.cat