考虑一下:
facebook.com-IP:1.1.1.1我的服务器的IP:2.2.2.2
在我的服务器上,如果把这个放在我的/etc/hosts文件上:
2.2.2.2 facebook.com
尝试在我的服务器上访问facebook.com,而不是从facebook的服务器上加载facebook.com。浏览器会尝试在我服务器上查找facebook.com。
这是一个本地设置。
现在,假设我在服务器上托管了一个页面,其中包含以下行:
<iframe src="http://facebook.com/" style="position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe>
如果我尝试从服务器访问此页面,由于主机文件的原因,浏览器将尝试在2.2.2.2上查找域。
现在,如果一个拥有未经修改的主机文件的用户访问同一页面,他们的浏览器会从1.1.1.1或2.2.2.2加载facebook.com吗?
服务器正在使用Apache 2.4、CentOS 6.5。
文档中的所有URL都由客户端计算机解析。服务器上的hosts文件无关紧要。因此,如果用户有一个常规的主机文件,他们会去真正的facebook.com。