【问题标题】:Why does getaddrinfo sometimes behave differently with "example.com" and "www.example.com"?为什么 getaddrinfo 有时与“example.com”和“www.example.com”的行为不同?
【发布时间】:2016-01-08 13:56:02
【问题描述】:

这是来自 MSDN 的代码示例:getaddrinfo

您可以使用“baidu.com”和“www.baidu.com”进行测试。

【问题讨论】:

  • 这是一个非常受欢迎的话题,我想知道这是否与它的“三重 x”状态有关;)
  • @Peter 你所说的“三倍 x”状态是什么意思?

标签: dns getaddrinfo


【解决方案1】:

因为baidu.com和www.baidu.com是不同的地址!

www.example.com 在 DNS 中注册了一个 A 类型记录(或 CNAME,它指向一个 A 记录 - 这稍微简化了) A 记录是一个名称,在这种情况下 www 指向IP 地址12.34.56.78。 (我相信你已经知道了!)

example.com 也可以注册 A 记录(尽管不是 CNAME),这称为 Apex(或裸!)域。 example.com 的 A 记录很可能指向 123.45.67.89

一点历史

出现这种情况的部分原因是,在互联网的早期,服务器的主机名可能类似于 LOCUS.UC.EDU,因为很难知道 LOCUS 可能提供哪些服务。您可以附加 CNAME FTP.UC.EDU 以指向该机器。这样人们就知道它提供了什么服务。那时,www 只是另一种服务,在集体意识中没有特殊的地位。 (所有这些都发生在互联网发展的一两年内!)但您也很可能希望 bob@UC.EDU 工作。所以 UC.EDU 也需要是主机名

实际上,它仅从主机名开始(以及获得telexed 的主机记录——我确实喜欢这个事实)——但对于这种情况,我们将忽略这一点。

回到事实

通常 - 应该 - 有一个在 Apex 注册的 A 记录和一个在 www 注册的 CNAME 但当然没有要求,您可以拥有任何记录希望在您的域。

【讨论】:

    猜你喜欢
    • 2011-12-25
    • 2018-12-31
    • 1970-01-01
    • 2021-02-20
    • 2016-01-16
    • 1970-01-01
    • 2012-06-07
    • 2014-03-04
    • 1970-01-01
    相关资源
    最近更新 更多