回答

收藏

403 Forbidden vs 401 Unauthorized HTTP 响应

技术问答 技术问答 425 人阅读 | 0 人回复 | 2023-09-11

对于存在的网页,但用户没有足够的权限(他们没有登录或不属于正确的用户组),应该提供什么正确的 HTTP 响应?
' B% u6 q; C3 E5 w8 s% B& |401 Unauthorized?
! j0 y+ [7 O! i' Y: o) X4 }* N403 Forbidden?
8 h- u4 B: q5 ?9 S+ p# V还有什么?* r* A: @* @* |: ^
到目前为止,我读到的关于两者的区别还不是很清楚。每个响应适合哪些用例?$ |" o( N* x* V5 x0 c- [- B# f. b
                                                               
; a- J: `8 m! f5 O    解决方案:                                                               
8 M( U) R0 E' r                                                                解释:
2 M# K4 s( J+ g& T, p; [0 S401 Unauthorized存在身份验证错误的问题 HTTP 状态代码。仅此而已:用于身份验证而不是授权。服务器告诉你,你没有通过身份验证 -  身份验证或身份验证不正确- 但请重新验证身份并重试。 为了帮助你,它将永远包含一个WWW-Authenticate标头用于描述如何验证身份。
% p6 t2 q: P( {) v这通常是你的 Web 服务器返回的响应不是你的 Web 应用程序。
, ~3 O& @9 N- ~5 X  x这也是很暂时的;服务器要求你再试一次。, J* R! r0 Q' a% _
所以我用授权。403 Forbidden响应。它是永久性的,它与我的应用逻辑有关,它比 401 更具体。- R1 X, w. o' H! _7 t9 f
收到 403 响应是服务器告诉你的,对不起。我知道你是谁——我相信你说的是谁——但你只是没有权利访问这个资源。也许如果你很好地询问系统管理员,你将获得许可证。但请不要在你的困难改变之前打扰我。
% i" i1 ]5 g5 }3 a总之,401 Unauthorized响应应应用于缺乏或错误的身份验证,403 Forbidden当用户通过身份验证但无权执行对给定资源的要求时,应在以后使用响应。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则