当 .1 不是 TLD 时,1.1.1.1 如何解析为网站

How does 1.1.1.1 resolve to a website when .1 is not a TLD

在浏览器的地址栏中输入 1.1.1.1 时会打开 https://1.1.1.1/,这是我第一次看到 .1 顶级域名,所以我在各个域名注册商处查找了它.我找不到它,所以我检查了它是否真的是 iana.org and wikipedia.org 上的 TLD。它似乎不是顶级域,所以我回去检查了颁发给 https://cloudflare-dns.com/ 的 TLS 证书 所以我认为这可能是一个聪明的 JavaScript hack,它在页面加载后更改 URL 但后来我检查了网络请求,它们似乎也有 1.1.1.1 作为域名(如下所示)

Request URL: https://1.1.1.1/
Request Method: GET
Status Code: 200 
Remote Address: 1.1.1.1:443

cloudflare 如何做到这一点?

I saw .1 top level domain

不是。

1.1.1.1是一个IPv4地址,仅此而已。仅此而已。而且上面的网站有IP地址的证书,这种情况是有可能的,但是很少见。

当您将任何 URL 与主机名一起使用时,该主机名将转换为 IP 地址,并且浏览器会连接到它。但是,您可以将 IP 地址直接放在 URL 中,在这种情况下,浏览器会直接连接到它,它会跳过名称到 IP 地址的 DNS 解析。

当前的 ICANN 规则禁止使用数字 TLD,正是为了消除它们与 IP 地址的歧义。

请参阅我在 Number in the top-level domain? 上关于 TLD 及其中的数字的最长解释。

How does cloudflare do this?

任何人都可以和他们做完全一样的事情,但用处显然要小一些。只需确保创建正确的证书,一些 CA 允许提供 IP 地址证书,但不是所有证书,这不是标准情况。网络服务器也应该相应地配置,以接受 URL 中的 IP 地址,它希望主机名能够为正确的网站提供服务,尤其是当主机上有多个主机时(在这种情况下,对于 HTTPS 你需要单独的 IP 地址,每个网站一个)。

您可以看到与此处相同的站点 https://one.one.one.one/

% dig one.one.one.one +short      
1.0.0.1
1.1.1.1