最近, 去访问某一资源, 提示http 401,  颇为纳闷, 从未见过啊, 孤陋寡闻。

       于是, 上网查找了一下, 是鉴权错误, 仔细check了一下自己的代码, 发现代码果然有问题, 配置出错了, 而且还多了一个空格, 导致http req中的authentication信息不对, 从而导致http rsp中的status code为 401. 修改代码后, 就OK了。

       之前, 我们还说过http 403,  那http 401和 http 403有什么区别呢? 我来引用网上的一段话来说明:


There's a problem with 401 Unauthorized, the HTTP status code for authentication errors. And that’s just it: it’s for authentication, not authorization. Receiving a 401 response is the server telling you, “you aren’t authenticated–either not authenticated at all or authenticated incorrectly–but please reauthenticate and try again.” To help you out, it will always include a WWW-Authenticate header that describes how to authenticate.

This is a response generally returned by your web server, not your web application.

It’s also something very temporary; the server is asking you to try again.

So, for authorization I use the 403 Forbidden response. It’s permanent, it’s tied to my application logic, and it’s a more concrete response than a 401.

Receiving a 403 response is the server telling you, “I’m sorry. I know who you are–I believe who you say you are–but you just don’t have permission to access this resource. Maybe if you ask the system administrator nicely, you’ll get permission. But please don’t bother me again until your predicament changes.”

In summary, a 401 Unauthorized response should be used for missing or bad authentication, and a 403 Forbidden response should be used afterwards, when the user is authenticated but isn’t authorized to perform the requested operation on the given resource.


        




本文转载:CSDN博客