Controlling DNS prefetching
Controlling DNS prefetching
As of version 3.5, Firefox supports DNS prefetching. This is a feature by which Firefox proactively performs domain name resolution on both links that the user may choose to follow as well as URLs for items referenced by the document, including images, CSS, JavaScript, and so forth.
This prefetching is performed in the background, so that the DNS is likely to already have been resolved by the time the referenced items are actually needed. This reduces latency when, for example, the user actually clicks a link.
Background
DNS requests are very small in terms of bandwidth, but latency can be quite high, especially on mobile networks. By speculatively prefetching DNS results, latency when, for example, the user clicks a link can be reduced significantly (on the order of a second, in some cases).
The implementation of this prefetching in Firefox allows domain name resolution to occur in parallel with (instead of in serial with) the fetching of actual page content. By doing this, the high latency domain name resolution process doesn't cause delays during the process of fetching content.
Page load times -- especially on mobile networks -- can be measurably improved this way. If the domain names for images can be resolved in advance of the images being requested, pages that load a number of images can see a load time improvement of 5% or more.
Configuring prefetching in the browser
In general, you don't need to do anything to manage prefetching. However, the user may wish to disable prefetching. This can be done by setting thenetwork.dns.disablePrefetch preference to true.
Also, by default, prefetching of embedded link hostnames is not performed on documents loaded over HTTPS. This can be changed by setting thenetwork.dns.disablePrefetchFromHTTPS preference to false.
Controlling prefetching from content
Content providers have some control over the prefetching process as well. This is compatible with how Google Chrome handles DNS prefetching control.
Turning on and off prefetching
First of all, a server can opt out of DNS prefetching by serving content with the x-dns-prefetch-control: HTTP header set to "off".
This can also be done from individual documents, using the http-equiv attribute on the <meta> element, like this:
<meta http-equiv="x-dns-prefetch-control" content="off">
You can reverse this setting by setting content to "on".
Forcing lookup of specific hostnames
The content provider can force the lookup of specific hostnames without providing specific anchors using that hostname by using the rel attribute on the<link> element with a link type of dns-prefetch:
<link rel="dns-prefetch" href="http://www.spreadfirefox.com/">
In this example, Firefox will pre-resolve the domain name "www.spreadfirefox.com".
Similarly, the link element can be used to resolve hostnames without providing a complete URL, by preceding the hostname with two slashes:
<link rel="dns-prefetch" href="//www.spreadfirefox.com">
Forced prefetching of hostnames might be useful, for example, on the home page of a site to force pre-resolution of domain names that are referenced frequently throughout the site even though they're not used on the home page itself. This will improve overall site performance even though the performance of the home page may not be affected.
See also
Controlling DNS prefetching的更多相关文章
- seo网页加速技术,预加载 DNS Prefetching 详解
seo网页加速技术,预加载 DNS Prefetching 详解 DNS Prefetching 是什么 : DNS 是什么-- Domain Name System,域名系统,作为域名和IP地址相互 ...
- DNS Prefetching
For Developers > Design Documents > DNS Prefetching 目录 1 Problem 2 Solution 3 Architectur ...
- [WebKit]浏览器的加载与页面性能优化
非常棒.非常系统的一份资料,值得阅读! 原文来自百度泛用户体验. 作者:nwind 本文将探讨浏览器渲染的loading过程,主要有2个目的: 了解浏览器在loading过程中的实现细节,具体都做了什 ...
- MDN > Web technology for developers > HTTP
The Hypertext Transfer Protocol (HTTP) is an application-layer protocol for transmitting hypermedia ...
- HTML5 prefetch即预加载
原文地址 声明:此文带着自己的理解,不完全按原文翻译 prefetch 即预加载,在用户需要前我们就将所需的资源加载完毕. 有了浏览器缓存,为何还需要预加载? 用户可能是第一次访问网站,此时还无缓存 ...
- 前端优化:DNS预解析提升页面速度
在网页体验中我们常会遇到这种情况,即在调用百度联盟.谷歌联盟以及当前网页所在域名外的域名文件时会遇到请求延时非常严重的情况.那么有没有方法去解决这种请求严重延时的现象呢? 一般来说这种延时的原因不会是 ...
- 【转】浏览器DNS 预取读技术的危害
今天中午在http://news.ycombinator.com/news看到一篇文章标题: Saved 10 billion DNS queries per month by disabling D ...
- DNS Prefetch初认识
今天在看一个后台框架时,发现这样的代码: <link rel="dns-prefetch" href="//0.s3.envato.com">< ...
- DNS 预解析
DNS 解析也是需要时间的,可以通过预解析的方式来预先获得域名所对应的 IP. <link rel="dns-prefetch" href="//yuchengka ...
随机推荐
- POJ 2391 Ombrophobic Bovines(二分+拆点+最大流)
http://poj.org/problem?id=2391 题意: 给定一个无向图,点i处有Ai头牛,点i处的牛棚能容纳Bi头牛,求一个最短时间T,使得在T时间内所有的牛都能进到某一牛棚里去. 思路 ...
- UVa 10917 林中漫步
https://vjudge.net/problem/UVA-10917 题意: 给出一个图,求出从1走到2共有多少种走法.前提是他只沿着满足如下条件的道路(A,B)走:存在一条从B出发回家的路径,比 ...
- python 进制转换
print hex(),hex(-) #转换成十六进制 print oct(),oct(-) #转换成八进制 print bin(),bin(-) #转换成二进制 print int("字面 ...
- 模拟函数调用 Simulation Exclusive Time of Functions
2018-04-28 14:10:33 问题描述: 问题求解: 个人觉得这是一条很好的模拟题,题目大意就是给了一个单线程的处理器,在处理器上跑一个函数,但是函数里存在调用关系,可以是调用其他函数,也可 ...
- JavaScript--语法3--数组
JavaScript--语法3--数组 一.心得 二.代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "h ...
- Linux命令详解-man
man 命令提供有关主题的参考信息,例如命令.子例程和文件.man 命令提供由名称指定的对命令的单行描述.man 命令也提供所有命令的信息,这些命令的描述包含用户指定的关键字集合. 1.命令格式: m ...
- OAF TABLE中第一列添加事件不生效
我遇到一个比较诡异的现象 在TABLE中,我在TABLE的第一列添加了一个MessageCheckBox,并为其设置全局刷新的FireAction事件selection, 但是点击勾选框按钮之后,事件 ...
- 通读cheerio API-网络爬虫
所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成. ###cheerio ...
- HDU 4122 单调队列
转载自:http://blog.csdn.net/lvshubao1314/article/details/46910271 DES :给出n个订单和m是商店的开放时间.然后n行给出n个订单的信息.然 ...
- Linux运维学习笔记-常用快捷键及vi、vim总结
vim是vi的增强版,vim完全兼容vi