逐浪云主机

立即开通

加速缓存-dns-prefetch对网站速度能提升有多少?详解dns-prefetch。

作者:本站编辑 发布时间:2018-12-06 来源:佚名 点击数:

对于网站访问速度,我们永远不满足,就包括我也一样,从优化角度来说,我  网站优化  的速度还算不错。但是这还是不够,下面来介绍下   dns-prefetch  。

dns-prefetch介绍

DNS解析场景

    我之前讲解过很多大型的网站,都会用N 个CDN 域名来做图片、静态文件等资源访问。比如新浪,我们经常会看到有下列域。

   img1.sina.com.cn 、 img2.sina.com.cn 、img3.sina.com.cn 、img4.sina.com.cn 等等,包括天猫、京东等,都会这样去使用,这是为什么呢,还是出在DNS 解析和浏览器加载原理上,解析单个域名同样的地点加上高并发(极端)难免有点堵塞,再加上部分浏览器对相同域名去DNS 解析的时候会异步,导致速度下降,虽然这些速度上咱们可能看不上,但蚊子再小也是肉,优化就讲究极致。

DNS-Prefetch用处介绍

上面说了那么多,下面来介绍下  dns-prefetch  ,在介绍之前,我们先看看我们的大佬们的使用情况,当然一般电商图片比较多,使用的较多。

dns-prefetch天猫的使用

1.jpg

dns-prefetch京东的使用

3.jpg

dns-prefetch SOJSON 的使用 ^_^

2.jpg

DNS Prefetch 是一种DNS 预解析技术,当你浏览网页时,浏览器会在加载网页时对网页中的域名进行解析缓存,这样在你单击当前网页中的连接时就无需进行DNS 的解析,减少用户等待时间,提高用户体验。 

我们DNS 解析的时候,需要用域名去DNS 解析匹配  IP  ,这个是需要时间的,如果加了  dns-perfetch  呢,浏览器会记住(缓存)这个解析,直接就请求过去了,不需要再走DNS 解析。就是这么简单。

DNS Prefetch使用方式

使用方式上面图片已经有了,就是添加如下代码。

<link rel="dns-prefetch" href="//cdn.www.sojson.com">

//开始是为了适配  https  和   http  。就是当前请求链接是https ,那么这个//前面自动补充https ,反则补充http 。




今天在看一个网站的源代码时 发现了 <link rel="dns-prefetch" href="//static.tuweia.cn/"> 对dns-prefetch有点儿好奇,因为不止一次地见到,今天终于忍不住要看看他到底是什么技术?

下面是在网上找到的一篇关于dns-prefetch的简述。

DNS 实现域名到IP的映射。通过域名访问站点,每次请求都要做DNS解析。目前每次DNS解析,通常在200ms以下。针对DNS解析耗时问题,一些浏览器通过DNS Prefetch 来提高访问的流畅性。 

什么是 DNS Prefetch ? 

DNS Prefetch 是一种DNS 预解析技术,当你浏览网页时,浏览器会在加载网页时对网页中的域名进行解析缓存,这样在你单击当前网页中的连接时就无需进行DNS的解析,减少用户等待时间,提高用户体验。 

目前支持 DNS Prefetch 的浏览器有 google chrome 和 firefox 3.5 

那么在服务端如何控制浏览器端对域名进行预解析那? 

如果要浏览器端对特定的域名进行解析,可以再页面中添加link标签实现。例如: 

  1. <link rel="dns-prefetch" href="www.ytuwlg.iteye.com" />  



如果要控制浏览器端是否对域名进行预解析,可以通过Http header 的x-dns-prefetch-control 属性进行控制。 

可惜目前支持上面标签的只有 google chrome 和 firefox3.5 

关于google chrome 中 DNS Prefetch 详细资料可参见: 
http://dev.chromium.org/developers/design-documents/dns-prefetching 

在chrome 中可通过在地址栏中输入 about:histograms/DNS.PrefetchFoundName 和 about:dns 来查看当前浏览器的预解析数据。


本文责任编辑: 加入会员收藏夹 点此参与评论>>
复制本网址-发给QQ/微信上的朋友