DNS详解

浏览器首次对网站域名DNS解析流程为:
浏览器缓存——操作系统缓存——路由器缓存——ISP DNS缓存——递归缓存

1. 前端优化:DNS预解析提升页面速度

Chrome,Firefox 3.5内置了DNS Prefetching技术
预解析实现:

// 用meta信息来告知浏览器, 当前页面要做DNS预解析
<meta http-equiv="x-dns-prefetch-control" content="on" />

// 在页面header中使用link标签来强制对DNS预解析
<link rel="dns-prefetch" href="http://bdimg.share.baidu.com" />


注意:dns-prefetch 需慎用,多页面重复DNS预解析会增加重复DNS查询次数。

2.用户在浏览器输入url地址,会发生哪些事情

  1. 浏览器查找域名的IP地址
  2. 查找到IP地址,浏览器给服务器发送http请求
  3. 服务器接收并处理请求
  4. 服务器返回一个html响应
  5. 浏览器接收并渲染html
3. 浏览器如何查找域名的ip地址
  • DNS域名解析过程
    1. 查找浏览器缓存

浏览器首先会检查缓存是否有此域名对应的解析过的IP地址;若缓存中有则这个解析过程就结束;浏览器缓存域名有大小和时间限制

    1. 查找系统缓存

若浏览器缓存没有,浏览器会去查找操作系统缓存;操作系统也有一个域名解析过程,在Windows中通过C:\Windows\System32\drivers\etc\hosts文件来设置,可以将任何域名解析到任何能够访问的IP地址。

    1. 查找路由器缓存

如果系统缓存找不到,那么查询请求就会发向路由器,一般有自己的DNS缓存

    1. ISP DNS缓存

在网络配置中有DNS服务器地址选项,操作系统把域名发送给这里设置的DNS,即本地域名服务器。这个专门的域名解析服务器性能一般很好,缓存时间受域名的失效时间控制
比如你用的是电信的网络,则会进入电信的DNS缓存服务器中进行查找;

    1. 递归搜索

1)本地DNS服务器将请求发送给互联网的根域
2)根域将所要查找的域名中的顶级域的服务器IP返回给本地DNS
3)本地DNS根据返回的ip,再向顶级域(com域)发送请求
4)com域中的服务器再向域名中的二级域(baidu)的ip地址返回本地DNS
5)本地DNS再向二级域发送请求进行查询
……)重复

参考连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值