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

问题描述

在浏览器的地址栏中输入 1.1.1.1 时会打开 https://1.1.1.1/,这是我第一次看到 .1 顶级域,所以我在各种域注册商处查找。我找不到它,所以我检查了 iana.orgwikipedia.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 如何做到这一点?

解决方法

我看到了 .1 顶级域名

不是。

1.1.1.1 是一个 IPv4 地址,仅此而已。不多也不少。而且它上面的网站有一个带有IP地址的证书,这是可能的,但很少见。

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

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

Number in the top-level domain? 中查看我对 TLD 及其中数字的最长解释。

cloudflare 如何做到这一点?

任何人都可以做与他们完全相同的事情,但显然用处不大。只需确保创建正确的证书,某些 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...