我注意到google library中的class 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).
那么,什么是有效的域名最大长度?
3条答案
按热度按时间jmo0nnb31#
这是直接从wikipedia:
完整域名的文本表示形式不能超过253个字符。在DNS的内部二进制表示形式中,最大长度需要255个八位字节的存储空间,因为它还存储名称的长度。
这是来自RFC 1035的:
每个标签都表示为一个八位字节长度字段,后跟该八位字节数。由于每个域名都以根的空标签结尾,因此域名以长度字节零结尾。
rbpvctlc2#
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
个字符。w8f9ii693#
根据RFC1123第2.1节,* 主机软件必须处理最多63个字符的主机名,并且应该处理最多255个字符的主机名;这意味着它应该能够接受和处理最多63个字符的任意长度的主机名,并且应该能够接受和处理最多255个字符的主机名(如果可能)。*