DNS解析和前端优化点之一
什么是DNS服务器域名解析?
DNS服务器:域名解析服务器,在服务器上存储着 域名:服务器外网ip 的映射
我们发送请求时所谓的DNS解析,其实就是根据域名在DNS服务器上查找对应主机的外网ip
DNS解析的顺序
浏览器缓存 => 系统缓存(就是电脑本地的,linux见 /etc/hosts) => 路由器缓存 =>ISP(运营商)DNS缓存 => 根域名服务器 => 顶级域名服务器 => 主域名服务器的顺序
DNS预解析作用
预解析的作用:根据浏览器定义的规则,提前解析之后可能会用到的域名,使解析结果缓存到系统缓存中,缩短DNS解析时间,来提高网站的访问速度
用户体验提升
- 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">
预解析的实际应用
- 静态资源域名
- JS中发起跳转的域名
- 会重定向的域名
了解一些概念
- 域名发散
PC端上为了突破浏览器单域名多线程并发限制,http静态资源采用多个子域名, 以提供最大的并行速度,让客户端加载静态资源的速度提升
- 域名收敛
尽量将静态资源只放在一个域名下面,移动端相对来说DNS消耗比较大
- SPDY/HTTP2
单域名的并发问题还是存在,怎么处理,核心是解除最大连接数的限制,那么SPDY/HTTP2的多路复用功能就派上用场了
核心是减少连接数,还有头部压缩、服务器推送,强制SSL安全协议等等
慢慢来,比较快!基础要牢,根基要稳!向大佬致敬!