HTTP URL的用户名部分的确切语义是什么?



如果我正在设计使用HTTP URL的API或协议,并且想使用UserInfo子组件来指定除请求者的用户名以外的其他内容,是否违反了规格?

例如。用户代理被认证为用户" a@example.com",向http://b@example.com/stuff提出了访问数据控制或与用户'B'有关的请求。

rfc 3986 3.2.1只是说'用户名',而不是客户的用户名:

UserInfo子组件可以由用户名组成,并且(可选)有关如何获得授权以访问资源的方案特定信息。

但是RFC 7230 2.7.1说

发件人不得生成userInfo子组件(及其@@@quort'deLimiter)时" http"URI参考是在消息中生成的,作为请求目标或标头字段值。在使用" http"之前从不受信任的来源收到的URI参考,接收者应解析用户info并将其存在视为错误;

基于上述内容,似乎您可以使用用户名组件表示所需的内容,但是服务器无法使用链接/资源标识符(包括用户名)响应。

在Firefox中测试链接(例如<a href="user@example.com">link</a>)后,它将显示警告,然后在没有用户名的情况下进行HTTP请求。)

最新更新