域名的最大长度

时间:2014-04-04 13:18:59

标签: java networking guava

我注意到谷歌图书馆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).

那么,域名的有效最大长度是多少?

2 个答案:

答案 0 :(得分:3)

直接来自wikipedia

  

完整域名的长度不得超过253个字符   它的文字表示。在内部二进制表示中   DNS的最大长度需要255个八位字节的存储空间,因为它   还存储名称的长度。

这是来自RFC 1035

  

每个标签都表示为一个八位字节长度的字段,然后是该字段   八位字节数。由于每个域名都以null标签结尾   根,域名以长度为零的字节终止。

答案 1 :(得分:1)

TLDR

如果您只想将域用作网站,则限制为: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 个字符。