You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未登录用户访问需授权页面时,应使用401 Unauthorized还是403 Forbidden?

未登录用户访问受限页面的正确HTTP状态码

咱们直接说结论:应该返回401 Unauthorized,不过这里有个必须注意的细节——你的响应头里得带上WWW-Authenticate字段,明确告诉客户端该用什么方式做认证(比如基于Cookie的会话、Bearer Token这类)。

可能你之前混淆了401和403的区别,我给你掰扯清楚:

  • 403 Forbidden的核心是「用户已经通过认证了,但就是没权限碰这个资源」——比如普通用户硬闯管理员后台,服务器知道你是谁,但就是不让你进,这时候用403才对。
  • 401 Unauthorized则是「服务器根本不知道你是谁,你得先证明自己的身份」,完美匹配未登录用户访问受限页面的场景:用户还没提供有效的登录凭证,服务器要求你先完成认证流程。

当然,实际开发里有些框架可能偷懒,没加WWW-Authenticate头就返回403,但从HTTP规范的严格定义来看,这是不符合语义的。另外,为了用户体验,你可以在返回401的同时,让前端自动跳转到登录页面——这是前端层面的优化,和HTTP状态码的语义不冲突。

内容的提问来源于stack exchange,提问作者Mohammad Naji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:28:25