我注意到谷歌图书馆com.google.common.net.InternetDomainName
的课程包含以下常数:
private static final int MAX_LENGTH = 253;
下面的代码,在创建InternetDomainName实例期间检查长度:
checkArgument(name.length() <= MAX_LENGTH, "Domain name too long: '%s':", name);
但RFC-2181说:
A full domain name is limited to 255 octets (including the separators).
那么,域名的有效最大长度是多少?
答案 0 :(得分:3)
直接来自wikipedia:
完整域名的长度不得超过253个字符 它的文字表示。在内部二进制表示中 DNS的最大长度需要255个八位字节的存储空间,因为它 还存储名称的长度。
这是来自RFC 1035:
每个标签都表示为一个八位字节长度的字段,然后是该字段 八位字节数。由于每个域名都以null标签结尾 根,域名以长度为零的字节终止。
答案 1 :(得分:1)
如果您只想将域用作网站,则限制为:255
个字符。
如果您只想将域与电子邮件一起使用,则限制为:253
个字符。
RFC2821(2001 年 4 月)建立了域的 255
字符限制,RFC5321(2008 年 10 月)保留了该标准。引用他们两个...
4.5.3.1.2。域
域名或域名的最大总长度为 255 个字符。
根据我们在 RFC821(1982 年 8 月)中看到的内容,电子邮件地址必须采用 a@example.com
的形式。 SMTP 中的 to
字段不能超过 255 个字符。可能的最短本地部分 a
是一个字符,@
是一个字符,这样一个域只剩下 253
个字符。