ale*_*985 9 domain-name-system ip
当我使用该网站的 IP 地址访问具有 Cloudflare 的网站时,我收到以下消息:
Error 1003
Direct IP access not allowed
What happened?
You've requested an IP address that is part of the Cloudflare network.
A valid Host header must be supplied to reach the desired website.
Run Code Online (Sandbox Code Playgroud)
我是一名学生。
jon*_*njo 21
cloudflare 设置没有什么特别之处。这只是 HTTP 的一个属性。
当客户端打开一个 URL 时,有三个重要的步骤:
一个经典的例子是这样的:
GET /pub/WWW/TheProject.html HTTP/1.1
Host: www.w3.org
Run Code Online (Sandbox Code Playgroud)
考虑一个带有许多网站的大型主机。为简单起见,假设它有一个 IP 地址。数百个域名解析到这个地址。服务器如何决定传送哪些页面?它使用客户端在 HTTP 请求中提供的主机详细信息。如果你要求它没有或想要给你的东西,它会给你一个错误响应。
在您的情况下,请求包含主机说明符的 IP 地址。
GET /whatever HTTP/1.1
Host: a.b.c.d
Run Code Online (Sandbox Code Playgroud)
当主机由 IP 地址指定时,很多主机决定不发出页面。Cloudflare 在这里没有什么特别之处,也与 DNS 无关。它是关于服务器如何响应对 IP 地址指定的主机的请求,您可以看到此错误消息指定了A valid Host header must be supplied.
这是描述如何以这种方式配置服务器的答案:https : //serverfault.com/a/607222
您可以通过使用 telnet 连接到服务器并手动发出 HTTP 请求来轻松验证这种行为。
附注。相同的一般答案适用于 HTTP S请求,但在设置中使用服务器名称指示。值得注意的是,HostHTTP 1.1 (1997) 附带了它。在此之前,这里描述的机制不存在,服务器无法可靠地判断客户端是否要求合法解析为其 IP 地址的名称,或直接通过 IP 地址要求主机。由于这是网站爆炸式增长的重要发展,许多旧客户端更新为发送Host. [感谢评论者了解细节。]
| 归档时间: |
|
| 查看次数: |
8255 次 |
| 最近记录: |