可以在URL主机中显示的有效字符是什么?

Dan*_*ola 13 url host

我正在写一些处理URL的代码,我想确保我不会遗漏一些奇怪的案例......

除了以下主机之外是否有任何有效字符:AZ,0-9," - "和"."?

(这包括可以在子域中的任何东西,等等.基本上,在//和第一个/之间的任何东西)

谢谢!

And*_*are 26

请参阅有效主机名的限制:

主机名由一系列与点连接的标签组成,所有域名都是1.例如,"en.wikipedia.org"是主机名.每个标签的长度必须介于1到63个字符之间,整个主机名最多包含255个字符.

RFC要求主机名的标签可能只包含ASCII字母'a'到'z'(不区分大小写),数字'0'到'9'和连字符.主机名标签不能以连字符开头或结尾.不允许使用其他符号,标点字符或空格.

  • 错误的!“en”是子域,所有“en.wikipedia.org”都是主机。 (4认同)
  • “en.wikipedia.org”是一个完全限定的域名。它由主机名“en”和域名“wikipedia.org”组成。 (2认同)

Rus*_*rry 5

不,这就是允许的全部

如果您喜欢阅读,参考:http : //www.ietf.org/rfc/rfc1034.txt


Mih*_*ita 5

取决于您在哪个级别进行验证(在 URL 转义之前或之后)。如果您尝试验证用户输入,那么它可以超越 ASCII(带有大量 Unicode)。

http://en.wikipedia.org/wiki/Internationalized_domain_name

如果您在所有转义和“punycode”完成后尝试验证,则验证没有意义,因为旧的 RFC 已经保证它只包含有效字符。