URI 中的用户信息(无密码)

Art*_*hur 3 url http

我知道 URI 支持以下语法:

http://[user]:[password]@[domain.tld]
Run Code Online (Sandbox Code Playgroud)

当没有密码或密码为空时,是否有冒号?

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

http://[user]:@[domain.tld]
Run Code Online (Sandbox Code Playgroud)

或这个:

http://[user]@[domain.tld]
Run Code Online (Sandbox Code Playgroud)

或者它们都有效吗?

uno*_*nor 5

当前的 URI 标准(STD 66)是 RFC 3986,相关章节是3.2.1。用户信息

\n

它\xe2\x80\x99s 定义了userinfo子组件(后面跟着@)可以包含以下任意组合

\n
    \n
  • 人物:
  • \n
  • 百分比编码字符,以及
  • \n
  • 来自unreservedsub-delims集合的字符。
  • \n
\n

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

\n

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

\n
\n

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

\n
\n

所以根据这个建议,userinfo子组件user:表明有用户名“user”并且没有密码。

\n