我知道URI支持以下语法:
http://[user]:[password]@[domain.tld]
如果没有密码或密码为空,是否有冒号?
换句话说,我应该接受这个:
http://[user]:@[domain.tld]
或者这个:
http://[user]@[domain.tld]
或者它们都有效吗?
答案 0 :(得分:1)
这更像是方便,两者都有效。我会选择http://[user]@[domain.tld]
(并提示输入密码。)因为它很简单而且不含糊。如果他必须在:
答案 1 :(得分:1)
当前的URI标准(STD 66)是RFC 3986,相关部分是3.2.1. User Information。
在那里定义了 userinfo 子组件(后跟@
)可以包含
:
,所以这意味着你的两个例子都是有效的。
但请注意,格式user:password
已弃用。无论如何,他们给出了应用程序应该如何处理这些URI的建议,即应用程序不应该显示第一个:
字符后的所有内容,除非
冒号后的数据是空字符串(表示没有密码)。
因此,根据此建议, userinfo 子组件user:
表示存在用户名“user”且没有密码。