DNS的详细解析过程

DNS解析又称域名解析。目的是将域名解析成对应的ip地址,去相对应的ip地址服务器上获取请求资源。

从输入网址到看到界面的整个流程:

        1.浏览器中输入网址  
    ==> 2.域名解析(DNS),找到IP服务器 
    ==> 3.HTTP三次握手,发送HTT的请求(Request) 
    ==> 4.服务器响应HTTP(Response) 
    ==> 5.浏览器下载资源 html css js images 
    ==> 6.浏览器解析代码(如果服务器有gzip压缩,浏览器先解压)
    ==> 7.浏览器渲染呈现给用户

DNS解析的详细流程:

以Chrome浏览器为例:

    第一步、  Chrome浏览器 会首先搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存)
            (注:chrome://net-internals/#dns 来进行查看Chrome自身的缓存)

    第二步、 如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操作系统自身的DNS缓存,
            如果找到且没有过期可以在命令行下使用 ipconfig /displaydns 来进行查看 )

    第三步、 如果在Windows系统的DNS缓存也没有找到,那么尝试读取hosts文件
            (位于C:\Windows\System32\drivers\etc),看看这里面有没有该域名对应的IP地址,如果有则解析成功。

    第四步、 如果在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,发起域名解析请求
            (通过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求,也就是运营商的DNS服务器必
            须得提供给我们该域名的IP地址)运营商又会从自身的一级一级缓存中查找,最后从服务器数据库中
            找到对应的ip地址返回来。
           【当然dns服务器有好多级,什么com cn 很多,从根服务器又一层层分了好多。一般用户是就近访问。】

题外话,web优化的时候,需要考虑 DNS解析所花费的时间。

一般DNS解析是有时间开销的,大概时间在20-100多毫秒不等。
优化原则是: 减少主机名的数量就可以减少dns查找的时间。但是减少了页面中并行下载的数量。一般2个。 减少主机名和并行下载方案就会产生矛盾。需要每个项目不同的权衡。一般建议是将不同的资源放在至少2个以上,但不建议多余4个主机名下,减少DNS查找的时间同时又可以高速并行下载资源!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值