为何预解析能提高网站性能,不添加预解析网站性能差在哪里?
域名与IP
在访问网站的时候,我们都是通过输入域名进行访问,但是资源是存放在服务器上的,访问资源的唯一方式就是通过IP访问获取。域名是一个IP地址上的“面具” ,一个域名的目的是便于记忆和沟通的一组服务器的地址。所以当我们需要获取服务器资源的时候,就需要通过DNS服务器获取当前域名所对应的IP地址,这就是所谓的DNS域名解析。
DNS解析过程
递归查询
客户端A抛出个查询请求到B,B查询不到,B发个查询请求至C,查询到后返回。浏览器、操作系统、路由器都会缓存一些URL对应的IP地址,使得不必每次都从DNS服务器中查询,通过递归查询缓存即可。
迭代查询
局部的DNS服务器并不会自己向其他服务器进行查询,而是把能够解析该域名的服务器IP地址返回给客户端,客户端会不断的向这些服务器进行查询,直到查询到了位置,迭代的话只会帮你找到相关的服务器,然后说我现在比较忙,你自己去找吧
DNS预解析
由此可见域名初次通过DNS服务器查询IP的时候,还是会占用一部分的时间的,那么可以采用DNS预解析的方式,提前解析。大型网站,有多个不同服务器资源的情况下,都可采取DNS预解析,提前解析,减少页面卡顿。
<link rel="dns-prefetch" href="//ljhkj.cn">
其他-DNS负载均衡
DNS还有负载均衡的作用,现在很多网站都有多个服务器,当一个网站访问量过大的时候,如果所有请求都请求在同一个服务器上,可能服务器就会崩掉,这时候就用到了DNS负载均衡技术,当一个网站有多个服务器地址时,在应答DNS查询的时候,DNS服务器会对每个查询返回不同的解析结果,也就是返回不同的IP地址,从而把访问引导到不同的服务器上去,来达到负载均衡的目的。例如可以根据每台机器的负载量,或者该机器距离用户的地理位置距离等等条件。