不带 http://www 的域名的最大长度。 & .com 零件

Posted

技术标签:

【中文标题】不带 http://www 的域名的最大长度。 & .com 零件【英文标题】:Maximum length of a domain name without the http://www. & .com parts 【发布时间】:2013-01-02 08:51:24 【问题描述】:

域中“名称”部分的最大长度是多少? 我指的是http://www.google.com 中的googlegoogle 部分没有前后的内容可以持续多久?

【问题讨论】:

由于堆栈和***一直相互引用,我在这里找到了一些很好的总结:blog.sacaluta.com/2011/12/… 和 blogs.msdn.com/b/oldnewthing/archive/2012/04/12/10292868.aspx 【参考方案1】:

在其外部点标签规范中,完整域名的总长度不得超过 253 个字符。

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

如果您的域名接近 253 个字符,我认为您应该寻找一个较短的域名...

【讨论】:

其实我想把那个数字放到一个正则表达式中。 很明显,如果您的域名接近 253 个字符,它应该更短……但是您听说过这个叫做……互联网的东西吗?那里的人都疯了。你无法想象他们想出的一些东西。【参考方案2】:

"URI 生产者应该使用名称 符合 DNS 语法的,即使不使用 DNS 立即显而易见,并且应将这些名称限制为不超过 长度为 255 个字符。”

https://www.rfc-editor.org/rfc/rfc3986

"DNS 本身对特定标签只设置了一个限制 可用于识别资源记录。那一个限制 涉及到标签的长度和全名。的长度 任何一个标签都限制在 1 到 63 个八位字节之间。一个完整的域 名称限制为 255 个八位字节(包括分隔符)。"

https://www.rfc-editor.org/rfc/rfc2181

【讨论】:

主机名是255,域名是253 ...带或不带分隔符?【参考方案3】:

每个标签最多可包含 63 个字符。

【讨论】:

是的,技术上称为标签,最多可包含 63 个字符。来源:en.wikipedia.org/wiki/Domain_Name_System 感谢您的直截了当的回答。 63 (vs 255) 背后的部分原因是用于数据包压缩。 8 位长度的前 2 位中的 1,1 表示指向前一个标签的指针(should_actually 限制为 191) 将这些位检查为单个标志的一些糟糕的实现可能是原因对于 63 个字符的限制。 考虑到域可以嵌套,例如:www.group-of-hosts.department.example.com - 因此每个标签可能有 63 个字符长,而没有 www..com 的完整域可能更长,如在这种情况下,它将是 group-of-hosts.department.example - 这可能比 63 长。 来自同一个 wiki 来源:The full domain name may not exceed the length of 253 characters in its textual representation. 所以我认为在使用 sql db 时使用 255 长度的 varchar 来保存域名是安全的。【参考方案4】:

作为演示,本网站有一个63个字符的域名,允许的最大值: http://63-characters-is-the-longest-possible-domain-name-for-a-website.com

【讨论】:

网站已关闭,但这里是存档:web.archive.org/web/20160308231823/http://…【参考方案5】:

TLDR 答案

使用这些限制:

标签:61 个八位字节。

名称:253 个八位字节。

即使您超出了这些限制(例如 Gmail),许多应用程序也能正常工作,但也有许多较旧的应用程序不能工作。

来源

RFC1035: Domain Names - Implementation And Specification(1987 年 11 月发布)是公认的Internet Standard,在浏览器中查看时对子域和整个域长度有以下限制...

DNS 中的各种对象和参数都有大小限制。他们是 下面列出。有些可以很容易地改变,有些则更多 基础。

标签 63 八位字节 [字节/字符] 或更少

名称 255 八位字节 [字节/字符] 或更少

这些的工作级别是:

标签:61 个八位字节。 名称:253 个八位字节。

这是因为RFC821(1982 年 8 月发布)以user@domain.com 的格式定义电子邮件,user 的最小值将是一个字符。这样@ 就剩下一个字符,然后domain.com 部分就只剩下253 字符了。

这已经被多次确认...

RFC2181: Clarifications to the DNS Specification(1997 年 7 月发布):只是一个建议的标准。 “一个完整的域名限制为 255 个八位字节(包括分隔符)。”

RFC3986: Uniform Resource Identifier (URI): Generic Syntax(2005 年 1 月发布):接受的 Internet 标准。 “URI 生产者应该使用符合 DNS 语法的名称,即使 DNS 的使用不是很明显,并且应该将这些名称的长度限制为不超过 255 个字符。”

RFC5321: Simple Mail Transfer Protocol(2008 年 10 月发布):只是一个提议的标准。该 RFC 给出了标签或子域的最大长度为 64,比其他 63 多一个。我建议坚持使用63“域名或号码的最大总长度为 255 个八位字节。”

每个标签(或子域)可以有 63 个字符,每个名称(包括 TLD)可以有 255 个字符。

注意它在 octets 中给出了定义。那是因为它正在查看物理字节,而不是文字字节。例如,\. 被解释为.(一个文字字节),因为\ 对其进行了转义,但它被编码为\.(两个物理字节)。这些八位字节限制是物理字节限制。

【讨论】:

以上是关于不带 http://www 的域名的最大长度。 & .com 零件的主要内容,如果未能解决你的问题,请参考以下文章

不带www域名不可访问为啥?

Nginx处理访问www域名跳转到不带www域名的配置方法

nginx 301重定向,实现不带www跳转www域名

nginx 301重定向,实现不带www跳转www域名

使用 Nginx 实现 301 跳转至 https 的根域名

Python urlparse——提取没有子域的域名