从技术上讲,所有域名都以“。”结尾吗?

从技术上讲,所有域名都以“。”结尾吗?

我的理解是 TLD 是根域名的子域名,用“。”表示。

因此“google.com”更具体地应该是“google.com。”。

在什么情况下你会看到以“.”结尾的域名,例如“google.com.”?我以前也见过,但当时没怎么在意。

答案1

是的,完全合格的域名以点结尾。如果域名不以点结尾,则它始终是相对的。操作系统、正在使用的应用程序、某些代理或其他名称解析元素可能会尝试搜索相对于根.域以外的其他名称的名称。例如,在办公室,公司域很可能在根域之前被搜索。

理论上,您可以在任何地方使用完全限定域名,这样可以节省互联网的几次 DNS 命中,并为您自己节省几毫秒的时间。实际上,世界上充满了验证正则表达式等,它们可能会拒绝这种(完全有效的)FQDN。

它们非常常见的一种特定情况是配置名称服务器时,例如 CNAME 记录。名称服务器中的区域通常将自身作为“相对根”,因此要引用其外部的域名,必须使用以点结尾的完全限定名称。

答案2

从技术上讲,所有域名都以“。”结尾吗?

是的,如果您查看与 DNS 相关的核心 RFC,因为那里的任何名称都是以值为 0 的结束字节传输的,该字节对根进行编码,也称为“演示”格式的结束点。

请参阅第 3.1.5 节RFC 1035

NAME 表示为标签序列的域名,其中每个标签由一个长度八位字节和其后的八位字节数组成。域名以零长度八位字节作为根的空标签终止。

这也是为什么当使用dig或编写区域文件时,您会看到名称以最后一个点结尾,以消除任何歧义。

现在,一切都取决于上下文。在 URL 中,您可以编写末尾不带点的主机名,这是可行的,因为它暗示它们是绝对的。

您可能需要咨询RFC 8499这是目前与 DNS 术语相关的所有术语的标准参考。它是这样说的:

      The presentation format for names in the global DNS is a list
     of labels ordered by decreasing distance from the root, encoded
     as ASCII, with a "." character between each label.  In
     presentation format, a fully-qualified domain name includes the
     root label and the associated separator dot.  For example, in
     presentation format, a fully-qualified domain name with two
     non-root labels is always shown as "example.tld." instead of
     "example.tld".  [RFC1035] defines a method for showing octets
     that do not display in ASCII.

     The common display format is used in applications and free
     text.  It is the same as the presentation format, but showing
     the root label and the "." before it is optional and is rarely
     done.  For example, in common display format, a fully-qualified
     domain name with two non-root labels is usually shown as
     "example.tld" instead of "example.tld.".  Names in the common
     display format are normally written such that the
     directionality of the writing system presents labels by
     decreasing distance from the root (so, in both English and the
     C programming language the root or Top-Level Domain (TLD) label
     in the ordered list is rightmost; but in Arabic, it may be
     leftmost, depending on local conventions).

后来,定义了 FQDN 并详细说明了与上下文相关的真正问题:

 Fully-Qualified Domain Name (FQDN):  This is often just a clear way
  of saying the same thing as "domain name of a node", as outlined
  above.  However, the term is ambiguous.  Strictly speaking, a
  fully-qualified domain name would include every label, including
  the zero-length label of the root: such a name would be written
  "www.example.net." (note the terminating dot).  But, because every
  name eventually shares the common root, names are often written
  relative to the root (such as "www.example.net") and are still
  called "fully qualified".  This term first appeared in [RFC819].
  In this document, names are often written relative to the root.

  The need for the term "fully-qualified domain name" comes from the
  existence of partially qualified domain names, which are names
  where one or more of the last labels in the ordered list are
  omitted (for example, a domain name of "www" relative to
  "example.net" identifies "www.example.net").  Such relative names
  are understood only by context.

至于:

在什么情况下你会看到以“。”结尾的域名,例如“google.com.”?

简单,执行任何 DNS 查询:

$ dig NS google.com +noall +ans
google.com.     3h9m51s IN NS ns4.google.com.
google.com.     3h9m51s IN NS ns2.google.com.
google.com.     3h9m51s IN NS ns3.google.com.
google.com.     3h9m51s IN NS ns1.google.com.

google.com.请注意,如果我使用因为dig是 DNS 客户端并且因此期望所有名称都是绝对的(因此结束的点是可选的),结果将完全相同。

您还可以在任何名称中添加点,从而获得类似 的 URL https://www.google.com./。对于 DNS 平面,它将是相同的。对于 IP 和 TCP 也是如此。对于 TLS,如果实现中没有错误,它应该是相同的。在 HTTP/HTTPS 级别,正确​​的服务器可以工作,但请注意,您可能会因此遇到错误(因此要么显示与正常页面不同的页面,要么出现错误)。

电子邮件地址以及其他使用姓名的地方也一样。

如果你要质疑事物,是的,根据定义只有一个根......至少在理论上(参见RFC 2826“IAB 关于唯一 DNS 根的技术评论”)。每个网络(从本地家庭到甚至整个州)都可以定义本地根,其他协议确实定义了看似根但实际上并非根的名称(例如:ethbit)。但此时您进入的是政治舞台,而不再是技术舞台。

相关内容