![如何通过 IP 地址访问 URL?](https://linux22.com/image/665099/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20IP%20%E5%9C%B0%E5%9D%80%E8%AE%BF%E9%97%AE%20URL%EF%BC%9F.png)
http://example.com其 IP 地址为 93.184.216.34。
从我读过的有关 IP 地址和端口的信息来看,这让我相信在其末尾附加端口 80 (93.184.216.34:80) 也应该加载相同的页面。然而,它却给了我一个 404 Not Found 错误。
为什么我无法访问http://example.com通过其 IP 地址?
答案1
这HTTP 协议允许客户端应用程序(通常是 Web 浏览器)创建包含其想要联系的网站名称的 HTTP 请求;这允许多个网站共存于同一个 IP 地址和端口上。
所有的 Web 服务器都可以配置为根据客户端请求的网站名称提供不同的内容;此外,它们可以有一个默认网站,如果请求没有明确指定任何主机名,则使用该网站。
就您而言,您(您的浏览器)在未指定主机名的情况下联系 Web 服务器,因为您在 URL 中使用了服务器 IP 地址;似乎 Web 服务器未配置为处理此类请求,因此它返回错误。
大多数 Web 浏览器会自动使用您在 URL 中指定的任何内容作为要请求的主机名(如果您使用 IP 地址,则不指定任何内容);因此您无法控制实际发出的请求。某些开发人员工具允许您执行自定义请求,或者您可以通过连接到目标服务器上的 TCP 端口 80(甚至使用像 这样的简单工具telnet
)并谈论一点 HTTP 来手动执行这些请求。例如,这个(精简的)请求从网站 example.com 返回正确的页面:
GET / HTTP/1.1
Host: example.com
/
它的基本含义是“给我名为“的网站”的路径(网站根目录)中的内容example.com
”。