【Http认证方式】——Basic认证

时间:2021-08-27 16:22:58

今天在访问请求:http://192.168.2.113:8080/geoserver/rest/workspaces时,浏览器弹出窗口需要输入用户名和密码
【Http认证方式】——Basic认证

,并且,如果不输入或者输入错误,浏览器返回
【Http认证方式】——Basic认证

可以在火狐浏览器的网络监控这里看到请求的详细信息,
【Http认证方式】——Basic认证

服务器会返回一个401 Unauthozied给客户端,并且在Response 的 header “WWW-Authenticate” 中添加信息。
当我们输入正确的用户名和密码之后,服务器正确返回。可以看到这个时候的请求信息:
【Http认证方式】——Basic认证

这是浏览器将我们的用户名和密码进行base64编码之后,发送到服务端。



这种认证方式是Http Basic认证,流程是:
1、浏览器发送get请求到服务器,服务器检查是否含有请求头Authorization信息,若没有则返回响应码401且加上响应头
【Http认证方式】——Basic认证

2、浏览器得到响应码自动弹出框让用户输入用户名和密码,浏览器将用户名和密码进行base64编码(用户名:密码),设置请求头Authorization,继续访问
方法一:增加请求参数
【Http认证方式】——Basic认证

方法二:使用类Authenticator
step1 创建类继承Authenticator
【Http认证方式】——Basic认证

step2 在获取网络资源之前,设置

【Http认证方式】——Basic认证

3、浏览器得到Authorization请求头信息,验证成功。




********************自己写了个需要Basic验证的服务*****************************************************************************************
【Http认证方式】——Basic认证

********************************************Http的其他认证方式**************************************
除了这种方式外,还有其他三种认证方式
【Http认证方式】——Basic认证

参考博客文章 Http的四种认证方式