DNS解析和前端优化点之一

什么是DNS服务器域名解析?

DNS服务器:域名解析服务器,在服务器上存储着 域名:服务器外网ip 的映射
我们发送请求时所谓的DNS解析,其实就是根据域名在DNS服务器上查找对应主机的外网ip

DNS解析的顺序

浏览器缓存 => 系统缓存(就是电脑本地的,linux见 /etc/hosts) => 路由器缓存 =>ISP(运营商)DNS缓存 => 根域名服务器 => 顶级域名服务器 => 主域名服务器的顺序

DNS预解析作用

预解析的作用:根据浏览器定义的规则,提前解析之后可能会用到的域名,使解析结果缓存到系统缓存中,缩短DNS解析时间,来提高网站的访问速度

用户体验提升

  1. DNS优化
  • DNS缓存 (一般浏览器在第一次解析后,默认简历缓存,时间很短,只有一分钟左右)
  • 减少DNS解析次数,(少涉及域名)
  • DNS预获取(dns-prefetch): 在页面加载开始的时候,就把当前页面中需要访问的其他域名和服务器信息进行提前DNS解析, 以后加载到具体内容的时候就可以不用进行 DNS解析了

<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="dns-prefetch" href="//img.example.com">

预解析的实际应用

  1. 静态资源域名
  2. JS中发起跳转的域名
  3. 会重定向的域名

了解一些概念

  1. 域名发散

PC端上为了突破浏览器单域名多线程并发限制,http静态资源采用多个子域名, 以提供最大的并行速度,让客户端加载静态资源的速度提升

  1. 域名收敛

尽量将静态资源只放在一个域名下面,移动端相对来说DNS消耗比较大

  1. SPDY/HTTP2

单域名的并发问题还是存在,怎么处理,核心是解除最大连接数的限制,那么SPDY/HTTP2的多路复用功能就派上用场了
核心是减少连接数,还有头部压缩、服务器推送,强制SSL安全协议等等

参考资料
https://github.com/amandakelake/blog/issues/50

posted @ 2021-03-17 20:58  HelloCoderRookie  阅读(97)  评论(0编辑  收藏  举报