如果我正在设计使用HTTP URL的API或协议,并想使用userinfo子组件来指定请求者的用户名以外的其他内容,那是否违反规范?
例如验证为用户'a@example.com'的用户代理向http://b@example.com/stuff
发出请求,以访问受控制的或与用户'b'有关的数据。
答案 0 :(得分:0)
RFC 3986 3.2.1只是说一个“用户名”,而不是客户的用户名:
userinfo子组件可能包含用户名,以及(可选)有关如何获得访问资源授权的方案特定信息。
当在消息中生成“ http” URI引用作为请求目标或标头字段值时,发送方不得生成userinfo子组件(及其“ @”定界符)。在使用从不受信任的来源收到的“ http” URI引用之前,接收者应该解析userinfo并将其存在视为错误;
基于上述内容,看来您可以使用用户名组件来表示所需的内容,但是服务器无法使用包含用户名的链接/资源标识符进行响应。
在Firefox中测试链接(例如<a href="user@example.com">link</a>
)后,它将显示警告,然后如果您选择继续,则会发出不带用户名的HTTP请求。)