403 Forbidden vs 401 Unauthorized HTTP 响应
技术问答
292 人阅读
|
0 人回复
|
2023-09-11
|
对于存在的网页,但用户没有足够的权限(他们没有登录或不属于正确的用户组),应该提供什么正确的 HTTP 响应?
; ]) x0 c$ O2 j7 ^) W401 Unauthorized?
( B$ K# j3 ~# h' w403 Forbidden?+ f3 R' C. ?5 w5 W0 Q* }6 B/ S, O
还有什么?% t, Q# @. |! R# k! t2 N6 E" G
到目前为止,我读到的关于两者的区别还不是很清楚。每个响应适合哪些用例?
5 c7 }) B, I/ Y# D& N
, J) R# t- @" E% {- S 解决方案: F# e. Q, b8 f- S
解释:
" _* r1 ^7 E8 H6 g8 d! K; i401 Unauthorized存在身份验证错误的问题 HTTP 状态代码。仅此而已:用于身份验证而不是授权。服务器告诉你,你没有通过身份验证 - 身份验证或身份验证不正确- 但请重新验证身份并重试。 为了帮助你,它将永远包含一个WWW-Authenticate标头用于描述如何验证身份。8 \' y$ ?- h" N2 {
这通常是你的 Web 服务器返回的响应不是你的 Web 应用程序。
9 ]* Y" V8 J6 Y这也是很暂时的;服务器要求你再试一次。 w2 [7 M% L0 U" c' y. F9 ]5 m3 E
所以我用授权。403 Forbidden响应。它是永久性的,它与我的应用逻辑有关,它比 401 更具体。- G6 O0 f5 K# q7 H
收到 403 响应是服务器告诉你的,对不起。我知道你是谁——我相信你说的是谁——但你只是没有权利访问这个资源。也许如果你很好地询问系统管理员,你将获得许可证。但请不要在你的困难改变之前打扰我。& G0 M/ r* J1 r# Q5 Q0 q7 O
总之,401 Unauthorized响应应应用于缺乏或错误的身份验证,403 Forbidden当用户通过身份验证但无权执行对给定资源的要求时,应在以后使用响应。 |
|
|
|
|
|