这可能是一个非常愚蠢的问题,但我很好奇。
youtube.com的ping显示已解析的IP为74.125.127.93。现在,如果您在浏览器http://74.125.127.93/中访问此IP,则可能会显示youtube页面。而是搜索引擎出现。
有人可以解释窗帘后面发生了什么吗? 感谢。
答案 0 :(得分:13)
因为有许多服务器名称,但只有几个IP地址。
让我解释一下。 IPv4允许2 ^ 32(40亿)个不同的IP地址。听起来很多,但大多数都无法使用。 IP地址始终以块的形式分配。最小的块是255个地址(8位 - 1个广播地址),最大的是1600万个地址(2 ^ 24-1)。中型块具有64k地址(16位)。
如果您是ISP,则会获得一组固定的地址。但是当然你总是要求一个比你绝对需要的块更大的块 - 否则你将耗尽地址,这对ISP来说真的很糟糕。你可以要求两个16位的块,但加入这两个块总是很麻烦。
上周,我们用尽了IPv4块。所以...你有一个64k的块,无法获得更多。但是,您有150,000个想要运行Web服务器的客户。
解决方案:virtual servers。你告诉你的DNS“x.y.com”是13.242.251.17,“a.y.com”是同一个地址,“b.y.com”也是。
当客户端发出请求时,它将执行DNS查询,该查询始终返回相同的IP。然后它向刚刚获得的IP发送HTTP请求。诀窍是HTTP请求包含服务器名称。因此,即使所有请求都转到相同的IP地址,Web服务器仍然可以确定您真正想要的是谁。
只要你给它起名字。如果您使用IP,则会获得默认服务,即Google搜索引擎。
[编辑] 使用telnet
,您可以自行尝试。从telnet 74.125.127.93 80
开始,然后输入:
GET http://www.google.com/index.html HTTP/1.1
按两次输入。您将获得您所在国家/地区的Google主页的重定向。现在输入:
GET http://www.youtube.com/ HTTP/1.1
按两次输入。这一次,YouTube主页将被退回。
答案 1 :(得分:3)
答案 2 :(得分:1)
Google正在使用virtual hosting - 同一IP地址上的两个(或更多)服务,其中处理请求的Web服务器由请求的URL确定。