URI中没有密码的用户信息

时间:2014-10-13 09:37:21

标签: http url

我知道URI支持以下语法:

http://[user]:[password]@[domain.tld]

如果没有密码或密码为空,是否有冒号?

换句话说,我应该接受这个:

http://[user]:@[domain.tld]

或者这个:

http://[user]@[domain.tld]

或者它们都有效吗?

2 个答案:

答案 0 :(得分:1)

这更像是方便,两者都有效。我会选择http://[user]@[domain.tld](并提示输入密码。)因为它很简单而且不含糊。如果他必须在:

之后添加任何内容,则不会让用户思考

答案 1 :(得分:1)

当前的URI标准(STD 66)是RFC 3986,相关部分是3.2.1. User Information

在那里定义了 userinfo 子组件(后跟@)可以包含

的任意组合
  • 字符:
  • 百分比编码字符和
  • 集合无保留子delims 中的字符。

所以这意味着你的两个例子都是有效的。

但请注意,格式user:password 已弃用。无论如何,他们给出了应用程序应该如何处理这些URI的建议,即应用程序不应该显示第一个:字符后的所有内容,除非

  

冒号后的数据是空字符串(表示没有密码)。

因此,根据此建议, userinfo 子组件user:表示存在用户名“user”且没有密码。