我对域名感到困惑(我认为)
我把这些东西,也就是你可以购买的名字,称为“域名”
bbc.co.uk
google.com
我把这些东西,即名称的扩展,称为“主机名”
www.bbc.co.uk
mail.yahoo.com
arts.mit.edu
hello.there.example.com
这个命名方案正确吗?有官方定义吗?
具体来说,点之间的每个文本叫什么(即“www”、“bbc”、“edu”、“example”的名称)?
答案1
所有这些条目都是域名每RFC 1034和RFC 1035。如果它们还有代表根的(通常是隐式的)尾随点,那么它们将是完全限定域名。
域名的各个组成部分称为标签。这些字符的长度不能超过 63 个字符。标签可以包含从\000
到 的任何八位字节\377
。
如果一个域名有一个与之关联的A
(或) 记录(或最终解析为/记录),那么它也是一个AAAA
CNAME
A
AAAA
主机名。您的三个真实例子(www.bbc.co.uk
,等等)均符合条件。
主机名适用特殊规则。特别是,主机名中的每个标签都必须遵守RFC 1123要求,即只能使用字母、数字或连字符,并且连字符不能是第一个或最后一个字符。
请注意最左边的标签是不是它本身就是一个 DNS 主机名,尽管它可以是本地(非 DNS)主机名。
答案2
最右边的对象是Top Level Domain
。TLD 左侧的所有内容都是subdomain
。如果有一个地址与最左边的对象相关联,则该地址被视为hostname
。
答案3
这个命名方案正确吗?
不
这些有官方定义吗?
GNU/Linux 中的术语和命令“主机名”与我下面所说的主机名有很大不同。
在 GNU/Linux 中,主机名既是机器名又是网络名。换句话说,它可以是单个标签,也可以是一组由点连接的标签。它与 /etc/hosts 一起使用,用于 ssh 之类的操作。
但是如果您想运行 Web 服务器,它就不会被使用,而是由 DNS 记录有效地指向 Apache,然后您的 Apache 设置会找出您正在服务的域名。
顺便说一句,最接近 GNU/Linux 机器名(不是主机名)来自“hostnamectl --pretty”。
1)主机名定义
期限 '主机名' 可以追溯到 1985 年或之前,因此这个术语早于 1987 年晚些时候出现的 DNS(域名服务器)。
最初有一个大的文本文件hostnames
,其中有一个名称列和一个 IP 地址列,允许查找名称并找到与该名称相关的物理机器的 IP 地址。
据我所知,没有 RFC 明确指出主机名是域名(请参阅下面 WikiPedia 的注释,其中说明这是正确的,但没有引用)。
但如果你仔细想想,DNS 必须取代简单的文本列表。换句话说,它必须从名称到 IP 进行查找,所以我认为当 DNS 创建时,旧的主机名就变成了域名。
为清楚起见,今天的机器名称不是域名。虽然它们可能相同或相似,但它们并没有直接关系,只是最初它们大致相同。请参阅为您的计算机选择一个名称
Avoid domain names. For technical reasons, domain names should be avoided. In particular, name resolution of non-absolute hostnames is problematic. Resolvers will check names against domains before checking them against hostnames. But we have seen instances of mailers that refuse to treat single token names as domains. For example, assume that you mail to "libes@rutgers" from yale.edu. Depending upon the implementation, the mail may go to rutgers.edu or rutgers.yale.edu (assuming both exist).
2)域名定义
互联网的概念是请求函数s(征求意见文件),因此术语是抽象的而不是具体的。 例如domain
和host
是抽象的,而机器和计算机是具体的事物。
在继续之前,我发现了一篇评论“树术语' 抽象定义树,叶子, 和节点帮助我站稳脚跟。
官方 RFC 定义:
rfc1034,第 3.1 节定义domain name space
,,,,,,和[下面tree
强调我的] :node
label
root
domain name
domain
subdomain
这域名空间是树结构。树上的每个节点和叶子都对应一个资源集(可能为空)。域系统不区分资源集的用途。内部节点和树叶,本备忘录[RFC]使用了术语“节点“来指两者。
每个节点都有一个标签,长度为 0 到 63 个八位字节。兄弟节点 [兄弟] 可能不具有相同的标签 [换句话说,它们必须是唯一的],尽管非兄弟节点可以使用相同的标签。一个标签是保留的,即用于根。
[这很重要>]域名的节点是从节点到树根的路径上的标签列表。
...
当用户需要输入域名时,将省略每个标签的长度,并且标签之间以点 (") 分隔。。“)。由于完整的域名以根标签结尾,因此打印形式以点结尾。我们使用此属性来区分:
代表完整域名的字符串(通常称为“绝对“)。 例如“poneria.ISI.EDU”。 [<-- 注意结尾的点]
表示不完整域名起始标签的字符串,应由本地软件使用本地域的知识来完成(通常称为“相对的“)。 例如,ISI.EDU 域中使用的“poneria”。
相对名称相对名称要么相对于众所周知的来源,要么相对于用作搜索列表的域列表。相对名称主要出现在用户界面上,其解释因实现而异,并在主文件中出现,它们相对于单个来源域名。
...
[这也很重要>]领域由域名标识,由域名空间中位于或低于域名的部分组成,用于指定域。域是子域名如果它包含在另一个域中,则该子域的名称将被视为另一个域的名称。可以通过查看子域的名称是否以包含域的名称结尾来测试此关系。 例如,ABCD 是 BCD、CD、D 和“ ”的子域。
最后,维基百科说:
A主机名是域名有一个相关的DNS 记录。当查找(解析)域名时,解析器会返回应该响应该域请求的物理机器的 IP 地址。例如,给定域名可能有一个 A 类 DNS 记录,它返回“[物理]主机地址”即 IP 地址。当在 URL 中使用该域名时,运行在该静态 IP 地址上连接到互联网的机器上的 Web 服务器可能会提供网页。
和..
“拥有多个互联网地址的主机将拥有多个 A 记录。” 因此,一台物理计算机可以为一个或多个域提供网页服务。