转义基本身份验证URL中的用户名字符

时间:2011-07-16 15:50:53

标签: http http-basic-authentication

使用http基本身份验证时,可以在URL中传递用户名,例如

http://david@foo.com/path/

但现在假设用户名是电子邮件地址,例如david@company.com。这样做显然含糊不清:

http://david@company.com@foo.com/path/

有没有办法逃脱用户名中的@字符?我尝试过标准的URL编码:

http://david%40company.com@foo.com/path/

但那没有做到。

1 个答案:

答案 0 :(得分:65)

根据RFC 3986第3.2.1节,它需要是百分比编码:

  userinfo    = *( unreserved / pct-encoded / sub-delims / ":" )

所以它看起来像

http://david%40company.com@foo.com/path/

是对的。你在哪里读它?也许您需要手动解码值?