Java 区分URL用户名和基本身份验证用户名?

Java 区分URL用户名和基本身份验证用户名?,java,http,servlets,jakarta-ee,basic-authentication,Java,Http,Servlets,Jakarta Ee,Basic Authentication,假设浏览器发送了url: http://user1:password1@myhost.com/index.html 此URL是否可以在httpAuthorization标题中使用不同的用户名/密码对发送 例如: $http({ method: 'GET', url: 'http://user1:password1@myhost.com/index.html', headers: {

假设浏览器发送了url:

http://user1:password1@myhost.com/index.html
此URL是否可以在http
Authorization
标题中使用不同的用户名/密码对发送

例如:

       $http({
            method: 'GET',
            url: 'http://user1:password1@myhost.com/index.html',
            headers: {
                'Authorization': 'Basic ' + btoa('username2:password2')
            }
        })
如果是,那么如何区分这些地方

哪一个是我的

如何获得另一个

更新

根据我的Fiddler观察,web客户端不会在URL中保留用户名和密码,即使它是显式传递的。相反,它将用户名和密码放入
Authorization
标题中。我不知道,如果不同的值通过javascript传递的方式不同,会发生什么情况。无论如何,只发送一个用户名:password Pay

但后来对错误代码的行为有所不同。若在URL中传递了密码,则浏览器不会显示401错误的授权对话框。这可能与浏览器有关。

来自页眉:

String header = request.getHeader("Authorization") 
然后解码它

从URL:

URL url = new URL(request.getRequestURL()); //http://username:password@hostname.com
String userInfo = url.getUserInfo() // username:password


用户名/密码应在标题中传递,而不是URL的一部分。浏览器似乎可以跳过URL中的用户名和密码。

URL中的用户名和密码不会发送到服务器。浏览器的一个便利功能就是输入它们,浏览器会将它们放入/复制到
认证
标题中