HTTP401错误与HTTP403错误–状态码响应说明

网络 网络管理
之前我们已经详细介绍了403HTTP错误代码。那么401(未经授权)和403(禁止)状态代码之间到底有什么区别?他们是同一回事吗?让我们仔细看看!

之前我们已经详细介绍了403HTTP错误代码。那么401(未经授权)和403(禁止)状态代码之间到底有什么区别?他们是同一回事吗?让我们仔细看看!

[[331309]]

RFC标准

401(未经授权)的最新RFC标准是RFC 7235:401(未经授权)状态码表示该请求尚未应用,因为它缺少针对目标资源的有效身份验证凭据...用户代理可以使用新的或替换的Authorization标头字段重复该请求。

403(禁止)是RFC 7231中最新定义的:403(禁止)状态码表示服务器理解了请求但拒绝对其进行授权...如果请求中提供了身份验证凭据,则服务器认为它们不足以授予访问权限。

明显原因

如前一篇文章所述,403错误可能是已登录的情况,但是用户没有足够的特权来访问请求的资源。例如,一般用户可能正在尝试加载“管理员”路由。另一方面,遇到401错误最明显的是你根本没有登录或提供了错误的密码。这是两个最常见的错误原因。

不太明显的原因

在某些情况下,它并不是那么的简单。由于限制并不完全取决于登录用户的凭据,因此可能会发生403错误。例如,服务器可能已锁定特定资源以仅允许来自预定义IP地址范围的访问,或者可能利用了地理阻止。VPN可以绕过后者进行访问。

即使用户输入正确的凭据,也会发生401错误。这种情况很少见,但是如果授权标头格式错误,它将返回401。例如,你可能要包含一个JWT(JSON Web令牌)在请求标头中,其格式为Authorization: Bearer

eyJhbGci......yJV_adQssw5c。如果你在JWT之前忘记了“承载者”一词,则会遇到401错误。在使用Postman测试正在开发的API时,我自己遇到了这个问题,却忘记了auth标头的正确语法!

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2020-06-27 08:57:55

HTTP403服务器

2020-10-23 06:58:48

HTTP状态码服务器

2014-06-18 09:25:07

HTTP

2019-02-26 14:43:50

http状态码前端

2018-03-05 19:20:49

LinuxWordPressHTTP

2022-06-01 12:00:54

HTTP状态码服务端

2015-01-27 14:47:52

http协议

2014-10-22 09:36:41

TCPIP

2012-06-13 10:30:02

HTTP451状态码

2022-07-29 07:48:15

HTTP常用状态码

2022-10-11 08:48:08

HTTP状态码浏览器

2011-10-14 09:23:14

2019-09-17 08:18:19

HTTP网络协议状态码

2023-11-08 09:49:19

Java实践

2018-07-09 14:30:32

Windows 10WindowsHTTP错误

2022-06-27 09:15:11

HTTPHTTP 103状态码

2010-02-24 08:59:50

HTTP报头状态码

2010-08-02 15:10:43

ICMP错误响应

2020-12-07 11:11:21

勒索软件漏洞网络攻击

2023-07-07 11:47:17

微软搜索故障
点赞
收藏

51CTO技术栈公众号