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

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

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

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

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

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



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

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

方法二:使用类Authenticator
step1 创建类继承Authenticator
【Http认证方式】——Basic认证_第6张图片

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

这里写图片描述

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




********************自己写了个需要Basic验证的服务*****************************************************************************************
【Http认证方式】——Basic认证_第7张图片

********************************************Http的其他认证方式**************************************
除了这种方式外,还有其他三种认证方式
【Http认证方式】——Basic认证_第8张图片

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

你可能感兴趣的:(Java网络编程,计算机网络)