浏览器是怎么通过域名解析的

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-16
域名解析是怎么实现的?

有专门的DNS服务器,你在浏览器里面输入域名要先通过DNS服务器解析城IP地址,然后再访问到相应网站的
DNS就是一个数据服务器,里面都保存这类似的文件,比如www.123.com=192.168.1.1
然后你在地址栏访问www.123.com的时候,把请求发送到DNS服务器,要求查询对应的地址地址,然后结果是192.168.1.1,再然后就打开那个网站了,hehe,我行的形容很白痴,不过基本上就是这个原理~

域名是为了方便人们记忆而设立的,DNS内存有IP地址对应的域名,人们在浏览器输入域名后,浏览器会把域名传送到DNS,然后返回真实的IP地址,浏览器就可以直接浏览(WWW)网页了.
其实,计算机在Internet的空间位置是靠数字地址(IP地址)来定位的,域名仅仅是为了方便人们的记忆和使用.

域名解析步骤:

  当一个用户在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤:

  第1步,浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不好,如果缓存时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有可能会有一部分用户无法访问网站。如果时间设置太短,会导致用户每次访问网站都要重新解析一次域名。

  第2步,如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也会有一个域名解析的过程,在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,你可以将任何域名解析到任何能够访问的IP地址。如果你在这里指定了一个域名对应的IP地址,那么浏览器会首先使用这个IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以黑客就有可能通过修改你的域名解析来把特定的域名解析到它指定的IP地址上,导致这些域名被劫持。

  这导致早期的Windows版本中出现过很严重的问题,而且对于一般没有太多电脑知识的用户来说,出现问题后很难发现,即使发现也很难自己解决,所以Windows 7中将hosts文件设置成了只读的,防止这个文件被轻易修改。

  在Linux中这个配置文件是/etc/named.conf,修改这个文件可以达到同样的目的,当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果,缓存的时间同样是受这个域名的失效时间和缓存的空间大小控制的。

  前面这两个步骤都是在本机完成的,所以在图1-10中没有表示出来。到这里还没有涉及真正的域名解析服务器,如果在本机中仍然无法完成域名的解析,就会真正请求域名服务器来解析这个域名了。

  第3步,如何、怎么知道域名服务器呢?在我们的网络配置中都会有"DNS服务器地址"这一项,这个地址就用于解决前面所说的如果两个过程无法解析时要怎么办,操作系统会把这个域名发送给这里设置的LDNS,也就是本地区的域名服务器。这个DNS通常都提供给你本地互联网接入的一个DNS解析服务,例如你是在学校接入互联网,那么你的DNS服务器肯定在你的学校,如果你是在一个小区接入互联网的,那这个DNS就是提供给你接入互联网的应用提供商,即电信或者联通,也就是通常所说的SPA,那么这个DNS通常也会在你所在城市的某个角落,通常不会很远。在Windows下可以通过ipconfig查询这个地址

  在Windows中查询DNS Server

  在Linux下可以通过如下方式查询配置的DNS Server

  在Linux中下查询DNS Server

  这个专门的域名解析服务器性能都会很好,它们一般都会缓存域名解析结果,当然缓存时间是受域名的失效时间控制的,一般缓存空间不是影响域名失效的主要因素。大约80%的域名解析都到这里就已经完成了,所以LDNS主要承担了域名的解析工作。

  第4步,如果LDNS仍然没有命中,就直接到Root Server域名服务器请求解析。

  第5步,根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右。

  第6步,本地域名服务器(Local DNS Server)再向上一步返回的gTLD服务器发送请求。

  第7步,接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是你注册的域名服务器,例如你在某个域名服务提供商申请的域名,那么这个域名解析任务就由这个域名提供商的服务器来完成。

  第8步,Name Server域名服务器会查询存储的域名和IP的映射关系表,正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server域名服务器。

  第9步,返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系,缓存的时间由TTL值控制。

  第10步,把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。

  在实际的DNS解析过程中,可能还不止这10个步骤,如Name Server也可能有多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析的过程。



域名解析不是通过浏览器的,是域名进行解析到服务器地址(就是IP地址),然后在浏览器输入域名就会请求域名所解析到服务器信息,从而显示你想要访问的内容。

浏览器option选项中有网络设置方式,包括自动监测网络,或者设置代理等方式,浏览器要想知道不是本地PC机的网络设置不是很easy的事情吗

  • 什么是域名解析
    答:本地DNS服务器向顶级域名服务器查询,获取该域名对应的次级域名服务器(例如,baidu.com的次级域名服务器可能是dns.baidu.com)。本地DNS服务器向次级域名服务器查询,获取该域名所对应的 IP 地址,并将其返回给浏览器。浏览器得到 IP 地址后,将会向该 IP 地址发送请求,获取网站的内容。常见的域名解...
  • 域名是如何解析的域名是如何解析的呢
    答:在第一个过程中,浏览器首先检查这个域名对应的ip地址在自己的缓存中是否已经被解析,如果是,则解析结束。同时,域名缓存的时间也可以通过TTL属性来设置。在第二个过程中,如果浏览器缓存中没有结果(技术上来说还没有命中),浏览器会检查操作系统缓存中是否有对应的解析结果。操作系统也有一个域名解析的...
  • 域名解析的过程是怎样的?
    答:第一个过程,客户机提出域名解析请求,并将该请求发送给本地的域名服务器。第二个过程,当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。第三个过程,如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根...
  • 浏览器是怎么通过域名解析的
    答:其实操作系统也会有一个域名解析的过程,在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,你可以将任何域名解析到任何能够访问的IP地址。如果你在这里指定了一个域名对应的IP地址,那么浏览器会首先使用这个IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不...
  • 简述域名解析的过程
    答:第一个过程,客户机提出域名解析请求,并将该请求发送给本地的域名服务器。第二个过程,当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。第三个过程,如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根...
  • 域名如何解析到ip地址?
    答:域名解析是将域名转换为对应的 IP 地址的过程,使得我们可以通过域名访问网站而不是直接通过 IP 地址。域名解析的过程包括以下几个步骤:首先,你需要注册一个域名(比如.com、.top)并设置好域名服务器(DNS)的配置,可以通过域名注册商或者 DNS 服务提供商完成这一步骤。当你在浏览器输入域名并按下...
  • dns是如何进行域名的解析?
    答:一. DNS的委派 所谓DNS委派就是一个DNS服务器将某些区域的解析委托给其他DNS服务器负责.区域中的子域过多时,维护起来不方便,还用遇到域名查询的瓶颈,通过在区域中新建委派,可以将子域名委派到其它服务器维护。子域文件在父域文件中; 委派有独立的区域文件。DNS委派: DNS服务器把一个区域的子域委派...
  • 什么叫域名解析
    答:域名是由一些字符串组成的名称,例如google.com、baidu.com等。人们可以通过域名来访问网站,而无需记住复杂的IP地址。但是,计算机只能理解IP地址,因此需要将域名解析成IP地址。域名解析的过程是怎样的?当用户在浏览器中输入一个域名时,浏览器会将该域名发送给本地DNS服务器。本地DNS服务器会首先查询...
  • 5分钟教你搞懂 DNS
    答:当我们通过浏览器或者应用程序访问互联网时,都会先执行一遍DNS解析流程。 标准glibc提供了libresolv.so.2动态库,我们的应用程序就是用它进行域名解析(也叫resolving)的,它还提供了一个配置文件/etc/nsswitch.conf来控制resolving行为,配置文件中最关键的是这行: hosts:files dns myhostname。 它决定了resolving的顺序...
  • 域名系统(DNS)的基本功能是什么?其基本原理是什么?
    答:当DNS客户端向指定的DNS服务器查询网际网路上的某一台主机名称 DNS服务器会在该资料库中找寻用户所指定的名称 如果没有,该服务器会先在自己的快取缓存区中查询有无该笔纪录,如果找到该笔名称记录后,会从DNS服务器直接将所对应到的IP地址传回给客户端 ,如果名称服务器在资料记录查不到且快取缓存区中也没有时...