提高网页的加载速度

提高网页的加载速度,第1张

这就是为什么国外空房间的打开速度远不及国内主机的访问速度。

我们知道,用户访问网站时,都要经历域名的DNS解析过程。可能很多人平时并不太在意DNS解析时间。性能稳定响应时间快的DNS域名解析服务,可能和不稳定响应时间慢的DNS域名解析服务相差1秒,但是当网站域名解析请求太多的时候,这个时间就会积累很多。

本文将分享如何通过优化网站的DNS解析来减少DNS解析时间,使网站在原有访问速度的前提下继续实现新的飞跃。

减少域名DNS解析时间,将网页加载速度提升到一个新的水平——DNS缓存/预加载/多域名

一、域名DNS解析的原理和流程

1。DNS是怎么来的?DNS是域名系统的缩写。在互联网上,域名和IP地址是一对一(或者多对一)的。虽然域名很容易让人记住,但是机器只能知道彼此的IP地址。它们之间的转换称为域名解析。域名解析需要由专门的域名解析服务器来完成,DNS就是域名解析的服务器。

2。DNS解析的基本流程1:找到本地域名的DNS缓存。当用户通过浏览器访问域名时,浏览器会先在自己的缓存中寻找域名对应的IP地址,比如计算机系统Hosts文件、路由器缓存、ISP(互联网服务提供商)DNS缓存中的域名对应的IP。

提高网页的加载速度,域名DNS解析的原理,第2张

3。DNS解析的基本流程二:如果通过上面的DNS查询还是找不到你的域名对应的IP地址,那么你就要进入根服务器进行查询了。全球共有13个根逻辑域名服务器。这13台逻辑根域名服务器的名称分别为“A”到“M”,2014年1月25日的真实根服务器数量为386台,分布在世界各大洲。

4。虽然根域名服务器中没有每个域名的具体信息,但是负责解析每个域的域名服务器的地址信息(如COM、NET、ORG等。)被存储。根域名服务器会告诉本地DNS服务器顶级域名的IP(比如。com),这样你的域名查询请求就会去对应的顶级域名服务器。

5。DNS解析三的基本流程:顶级域名服务器收到请求后,会检查区域文件记录,否则会将辖区内主域名(不加任何前缀的域名,如freehao123.com)服务器的IP地址告诉当地DNS服务器。如果还是找不到,就去下一级域名服务器找。重复,直到找到正确的结果。

6。找到域名对应的正确IP地址后,本地域名服务器将返回的结果保存到缓存中以备下次使用,同时将结果反馈给客户端。客户端通过这个IP地址与web服务器建立链接。所以你的浏览器会正常访问网站。下图以Google.com为例说明了用户访问Google时DNS解析的全过程。(点击放大)

提高网页的加载速度,域名DNS解析全过程,第3张

二。浏览器加载网页的基本过程

1。从浏览器地址栏的请求链接开始,浏览器通过DNS解析找到域名映射的IP地址。连接成功后,浏览器通过HTTP协议向IP地址所在的服务器发出请求头信息的请求,服务器收到请求后会等待处理。

提高网页的加载速度,域名解析的时间,第4张

2。浏览器加载和显示html的顺序是从上到下,渲染的顺序也是从上到下。下载和渲染是同时进行的。如果遇到语义解释性的标签嵌入文件(JS脚本),CSS下载过程会启用单独的连接进行下载,下载完成后会进行解析。在解析过程中,页面所有向下元素的下载都将停止。(点击放大)

提高网页的加载速度,浏览器加载网页的时间线,第5张

3。什么原因导致网页加载太慢?在下载CSS资源的同时,浏览器可以并行解析HTML文件。但是,一旦找到对脚本文件的引用,就必须等待脚本文件被下载并执行,然后才能继续解析。内容的下载时间主要取决于用户带宽、服务器带宽、文件大小、文件数量等。

三。合理利用DNS TTL值提高域名缓存命中率

1。当DNS服务器使用递归或迭代来处理客户端查询时,会发现并获得很多关于DNS命名空的重要信息。该信息随后被服务器缓存。提供了一种加快缓存DNS的性能来解决热门名称后续查询的方法,同时大大减少了网络上与DNS相关的查询流量。

提高网页的加载速度,合理利用DNS TTL值,第6张

2。TTL(生存时间)是域名解析记录缓存在DNS服务器上的时间。缓存信息时,生存时间(TTL)值适用于所有缓存的RR。只要缓存的RRs的TTL没有过期,DNS服务器就可以继续缓存并再次使用RRs来回答来自匹配这些RRs的客户端的查询。

提高网页的加载速度,提高域名DNS服务器缓存时间,第7张

3。适当增加TTL值可以使DNS服务器缓存域名的时间更长,提高缓存命中率。一般TTL默认为一小时,可以根据实际情况设置为一天甚至一周以上。当然,如果你的域名的IP经常变化,TTL也不能太大,否则全球的DNS服务器会暂时无法获得新的正确的IP地址。

四。合理使用DNS预取进行DNS预读

1。从上述浏览器加载网页的过程可以看出,网页请求可以同时多任务处理。在网页有多个DNS请求的情况下,浏览器可以先在后台静默完成要使用的DNS请求,这样当用户打开新的网页时,可以节省DNS查询的时间。

提高网页的加载速度,使用DNS预读取加快网页打开速度,第8张

2。控制浏览器的DNS预读是DNS预取标签。DNS预取尽量放在网页前面,格式类似于:

很多网站使用百度广告联盟代码,你可以用这个代码预读DNS。

3。默认情况下,浏览器会有一个隐式的DNS预取,即它会预先获取页面中与当前域名(正在浏览网页的域名)不在同一个域的域名,并缓存结果。我们可以通过以下标签禁止隐式DNS预取:

4。需要注意的是,DNS预取只需要在用户第一次打开网站时使用。没有必要对每个页面都使用DNS预取,否则会重复DNS读取,反而无形中增加了DNS查询的次数,适得其反。

五、DNS域名解析拆分增加多个域名并行下载

1。一般来说,加载一个网页的内容时,会有多个域名请求。如果你的网站JS,CSS,图片等。都太多了,建议把这些文件放在不同的域名上,这样浏览器在打开某个页面的时候可以同时向这些域名发送DNS解析请求,一定程度上可以减少DNS的时间。

提高网页的加载速度,DNS域名解析拆分为多个域名,第9张

2。网页内容越多,需要分析的域名就越多。比如html,htm,js,css,jpg,png,gif,php,asp都可以放在不同的域名上。在实际应用中,使用全站点CDN或者静态文件CDN都可以达到上述效果,并且与css sprite配合使用。

提高网页的加载速度,减少网页的DNS请求次数,第10张

3。css sprite的作用正好相反。不是增加域名请求,而是减少域名DNS请求,主要针对图片。它可以让你把一个页面中涉及到的所有分散的图片都包含到一个大图中,这样当你访问页面的时候,加载的图片就不会像以前那样一张一张地显示了。

六。加速域名DNS解析的方法总结

1。本文介绍的DNS缓存、DNS预读、拆分域名等方法可以减少域名DNS解析的时间。但是对于一些日DNS请求量达到百万甚至更多的网站,DNS加速的效果是很明显的。另外,如果发现自己的网站响应速度太慢,不妨检查一下网页的DNS时间。

2。除了从网站本身的DNS解析上加快访问速度之外,我们在选择DNS服务时,通常会尽量使用那些稳定可靠的DNS服务。这样的DNS服务有非常好的响应速度和缓存率。如果你的网站拆分了好几个二级域名,不妨利用好CNAME,设置TTL时间,保证网站的第一个解析可以直接从运营商的DNS缓存中获得。

欢迎分享,转载请注明来源:聚客百科

原文地址: http://juke.outofmemory.cn/life/712581.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-13
下一篇 2022-07-13

发表评论

登录后才能评论

评论列表(0条)

保存