google-chrome - 什么是最小的有效域名?

标签 google-chrome firefox dns subdomain domain-name

技术上只是好奇什么是有效域名

t. <- is that valid

localhost is valid

我记得读过一些很短的东西,连两个字都没有

最佳答案

其他回复已经给了你一些提示,但我认为他们缺乏区分两种情况,因为你的问题很模糊。

其实我看到了3点:

  • 根据 DNS 语法规则,什么在技术上有效?
  • 今天可以在 IANA 根上做什么?
  • 如今终端客户端(例如浏览器)的工作原理是什么?

第一个点被 Calle Dybedahl 覆盖,技术上 . 是最小的标签(或显示为点的空标签)。但这本身并不是很有用。

为了完成,主机名的每个标签长度为 1 到 63 个字符。您只能在字母、数字和连字符之间进行选择。以前标签不能以数字开头,但这个限制早就解除了(否则 3com.com 将不可能)。但是,限制仍然存在不以连字符开头的标签。因此,您可以将 1 个字符的标签/名称/域名设置为任何字母(如“ASCII”字母中的“a”到“z”,不区分大小写)或数字。 因此,这在技术上是有效的,并且在您控制根区域的一些实验室实验中,您可以拥有它。 (以上所有内容首先由 RFC952 覆盖,然后由 RFC1123 修改以消除对第一位数字的限制;它们可能是阅读的简洁文档,更温和的介绍将在 Hostname entry in Wikipedia 上)。 请注意,主机名和 DNS 中的名称通常有细微的区别:主机名是 DNS 中的名称,但并非所有名称都是主机名,因为从技术上讲,名称可以包含任何字节内容,而主机名受规则限制上面(并且主要是人们在互联网上的日常生活中所看到的,其他名称用于其他基础设施目的)

现在,第二点,当前的 IANA 根及其内容。今天没有一个角色的名字,我怀疑会有一天。 它以 ccTLD 开头,长度为 2 个字母。有一个添加新 gTLD 的流程,但它们基本上至少 3 个字符长(比 IDN 稍微复杂一点,其中可能有带有 1 或 2 个代码点的标签,但根据 IDNA 规则,这将是一个 xn- - 标记,以便在 DNS 中看到超过 4 个字符)。 此外,今天并非所有两个字符组合都存在于 IANA 根目录中,因为它们是 ccTLD,因此必须代表“当前”国家/地区,因为它们的列表是从 ISO 国家名称列表 (ISO 3166) 中松散地(它们是异常(exception)) -1 Alpha2)

没有人可以预测会发生什么,但至少今天没有空间用于单字符 TLD 上的应用程序。

tadman 回复稍微涵盖了这一点以及相关的第三点,即今天有效的方法。 事实上,作为一个或两个字符的 TLD,您可能会看到相同的问题,通常被描述为“无点域”。例如,https://dk/ 解析是因为 .DK TLD 将 A/AAAA 记录关联到标签 .dk。 这在 ccTLD 中是可能的,但在 gTLD 中则不然,因为 ICANN 基于不同的原因强烈反对这种做法,其中一个原因是它们运行不佳,有关详细信息,请参阅此报告:https://www.icann.org/en/system/files/files/sac-053-en.pdf 请注意,由于 DNS 协议(protocol)中的问题,它们的工作效果不佳,只是因为如果输入没有“足够”的点,则使用各种终端客户端操作系统/应用程序自动附加域名后缀(或多个),即对于无点域名来说当然是正确的。

RFC 7085 "Top-Level Domains That Are Already Dotless" (2013 年 12 月)列出了所有“无点”案例(当时),例如 .DK,但它们还有 15 个。如果您计算对 MX DNS 类型的回复,甚至更多。

关于google-chrome - 什么是最小的有效域名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49075381/

相关文章:

google-chrome - 在 Firefox 和 Chrome 中呈现 HTML

sql-server - 强制 SQL Server 使用 CA 证书

python - 尝试使用Python在Socket中扫描IP以获取域名

javascript - Jquery在页面加载时获取桌面通知

google-chrome - navigator.clipboard 未定义

ruby - 如何使用 Chrome 和 Firefox 与 Ruby 服务器建立安全的 HTTP/2 连接?

javascript - 如何使用 chrome 或 firefox 在 javascript 中将 console.trace() 的结果作为字符串获取?

java - 使用 sendkeys 时,Web 驱动程序会跳过特殊字符 - "("和 "&"字符

dns - 如何让谷歌域 DynamicDNS 为 Raspberry pi3 更新 ipv4 而不是 ipv6

ios - HTML 5 缓存 list 不再在 Chrome 的 IO 中工作