zoukankan      html  css  js  c++  java
  • 由hosts到域名解析与网站备案的思考

          如果您对建站有所了解,但又不是很懂其中的原理,这篇文章可以解答你很多困惑!

          这篇文章来自于实践和推理,错误在所难免,见谅!

          前几天玩我的休闲小游戏时,突然发现登录不上去,官方的解决方法是修改C:\WINDOWS\system32\drivers\etc\hosts文件。很有意思,索性就上网查了一下这个文件是干什么的,简要的概括一下:在浏览器解析域名之前,要先从这个文件中查询是否有对应的IP,如果有,则按照此记录解析;如果没有,则提交给域名服务器进行解析。可想而知,用这个文件解析域名速度当然是非常快的。但是为了登录游戏而修改这个文件肯定不是因为速度这么简单,究竟是为什么?现在不是解释的时候。

          解析---域名---IP---主机---备案,突然我联想到这一系列的词。下面我问一个问题:网站为什么要备案?如果你到百度上去搜,你得到唯一的答复就是:根据国家法律规定。如果你不满足这个答案,那么你非常幸运看到了这篇文章!我可一告诉你,你想问的不是“网站为什么要备案”,你想知道的是“网站不备案为什么无法使用”!

          我们先来做个铺垫,知道虚拟主机的含义吗?虚拟主机,顾名思义,是虚拟的主机,也就是说在一台服务器可以虚拟多个主机,每个主机对应一个网站(可以有多个域名访问)。而IP地址,对于互联网上的主机来说,全世界每台主机都只有一个唯一的IP地址,这就好比全中国只有您一个唯一的身份证号码一样。而当多个虚拟主机对应到一个IP地址上时,就会出现问题了,怎么访问呢?这时候就需要用到域名! 我们需要在虚拟主机上捆绑自己的域名,然后在域名的控制面板解析到虚拟主机所在的主机IP,再在虚拟主机控制面板里将您的域名捆绑住,就能够通过域名在IE浏览器中访问到您的网站了。这个过程是怎么实现的呢?我来简单的说一下。 首先,您在IE浏览器打入您的网站地址,也就是您的域名。 此时,数据包就会发送到名称解析服务器(这个是互联网上的公用服务器),得到您的域名解析后的IP地址。然后,数据包就会带这您的域名一起前往您的主机IP地址 最后,到达您的主机IP地址,把域名交给主机中的一个叫做IIS的程序,告诉他要访问这个域名的网站内容,接下来IIS再检测该虚拟空间是否绑定了此域名,如果绑定了IIS程序就会把内容返回到您的IE浏览器界面里,您的网站就呈现出来了,否则忽略。

          在这要强调一下,在域名里解析到一个IP,虚拟主机也能捕获到这个域名,这样已经达到了访问,但是还要在虚拟主机里绑定这个域名,因为只有这样虚拟主机才可以判断是不是对自己的访问,因为虚拟主机只有一个IP,必须用域名加以区分,同时我们可以绑定多个域名。而且这个绑定还有其他用途,非常重要!

          和虚拟主机原理非常类似的是百度网站的工作原理。百度这么大的网站,访问量必然非常之高,所以百度不可能只有一台服务器。这些服务器是如何工作的呢?我们在不同的地点(最好是跨省的地点)去pingwww.baidu.com ,发现返回的IP是不一样的,为什么不一样?难道一个域名可以解析到不同的IP?不可能!接下来马上使用域名反查工具,去反查www.baidu.com,查到的是220.181.111.85,说明这个域名是解析到这个IP的。根据我的推测,当我们访问www.baidu.com时,会解析到220.181.111.85这个服务器,我们暂且称它为跳板服务器,它会根据你的位置,寻找离你最近的服务器,然后跳转到这个服务器上,让这个服务器为你服务。这个跳板服务器不提供任何返回信息,只是起到一个跳转的作用。证明这个猜测的例子是:当你在地址栏输入任何一个除跳转服务器之外的百度IP时(例如:61.135.169.125),会发现我们访问成功了,地址栏显示的就是这个IP,而不是www.baidu.com,说明这个主机正在为你服务;而当你在地址栏输入跳转服务器IP 220.181.111.85时,我们访问也成功了,但是地址栏显示的是www.baidu.com,说明这个主机没有为你服务,它最终还是要跳转到别的服务器,显示给你的是www.baidu.com,他不可能显示自己,因为它不具备这个功能。百度工作是一个域名跳转到不同IP,而虚拟主机是一个IP对应不同域名。

          接着说网站为什么要备案,注意是网站备案,而不是域名备案或者主机备案,网站备案是指把域名绑定到主机之后一起备案。那么为什么网站不备案就没法使用呢?这不是一个无聊的问题。大家都知道网站备案成功后会产生一个备案号,备案号有什么用?这个备案号也就是问题的所在,因为域名的任务是解析,这个功能不会被限制,也即是说无论是否备案,域名都是可以正确解析到指定IP的,但是仅仅解析到IP还不够,还要在主机上绑定域名(在虚拟主机原理中已经强调了),问题出现了,在主机绑定域名时要受到监管,也就是需要根据备案号查找备案,如果存在一个该域名到该主机IP的备案,那么可以绑定,否则绑定失败,所以说主机商也是非常无奈的。至此,问题已经找到了答案。

          再回到hosts文件,这个文件的作用上边已经说明了。我们来做一个假设:

    如果我向hosts文件中添加一个记录来帮助浏览器把www.pingjiao.net解析到虚拟主机ip


    虚拟主机ip   www.pingjiao.net

     

    然后我在虚拟主机控制面板中把主机绑定到 www.pingjiao.net上,是不是这样就可以不用备案而访问了?这样做理论上的确可行,但是问题就出在最后一步,我们根本无法在主机上绑定域名,因为我们没有合法有效的备案号!所以必须备案!如果根本没有备案这个体制的话,这样做有个好处:我们可以不购买www.pingjiao.net域名,而完成解析。(之所以在hosts文件中解析而不是直接在浏览器中输入IP,是因为我们需要域名信息)

          之所以国外主机和一些国内主机不用备案即可使用根本原因在于他们在主机绑定域名时不受监管。

          二级域名之所以可以不用备案而直接访问主机也就很好解释了,因为二级域名所属顶级域名已经有了备案号,所以主机可以绑定,而域名当然也可以解析,看上去是不用备案即可使用。但是二级域名一般都是服务商赠送的,已经做好了解析,一般客户也无法更改(主机可以不绑定这个二级域名,但是这个二级域名无法再解析到其他主机,因为我们没有管理权限,送的东西。。。。)。

          下面再来分析木瓜游戏,只有我这个时候分析你才会明白。要运行这个游戏需要在hosts文件中添加:

    98.126.138.14 www.1717mu.com

    98.126.138.14 1717mu.com

    所以,这个很可能是被封了域名,没法借助DNS服务器解析,用本地解析再加上的不被监管的主机,所以只需修改hosts解析就可以了。

          经过一系列的分析与学习过程,相信你对主机的工作流程有了一个清晰的了解,希望对读者以后的学习有帮助!

  • 相关阅读:
    知识要点
    SQL语法(包括建库、建表、建视图、查询、增加、删除、修改)
    SQL语句(建库、建表、修改语句)
    比较好的电影网站
    crud创建,修改,删除,查询
    代码创建与操作数据库
    数据库
    数组与集合
    结构体
    类的运用
  • 原文地址:https://www.cnblogs.com/iyangyuan/p/2801867.html
Copyright © 2011-2022 走看看