加载中…
正文 字体大小:

减少DNS查找

(2013-10-31 11:45:07)
分类: 前端代码优化
DNS也是要开销的,通常浏览器查找一个给定的主机名的ip地址要话费20-120毫秒,在DNS查找完成之前,浏览器不能从主机名那里下载到任何东西。响应时间依赖于DNS解析器,它所承担的请求压力,你与它之间的距离和你的带宽速度。在从浏览器的角度回顾完DNS的工作之后,我们应该要知道如何减少页面花在dns查找的时间。

DNS缓存和TTL

DNS查找可以被缓存起来以提高性能。这种缓存可以发生在由你的ISP或局域网中的一台特殊的缓存服务器上,但我们这里要探索的是发生在独立的计算机上DNS缓存。用户请求一个主机名之后,DNS信息会留在操作系统的DNS缓存中,之后对于该主机名的请求将无需进行过多的DNS查找,至少短时间内不需要。

影响DNS缓存的因素
查找返回的DNS记录包含了一个存活时间(time-to-live TTL)值,这是告诉客户端对该记录缓存多久。
浏览器对缓存的DNS记录的数量也有限制,而不管缓存记录的时间。如果用户在短时间内访问了很多不同域名的网站,较早的DNS记录将被丢弃,必须重新查找,但是操作系统依旧保留着记录,从而避免了明显的延迟。

TTL值
客户端收到的DNS记录的平均TTL值只有最大TTL值的一半,这是因为DNS解析器自身也拥有与DNS记录相关的TTL。当浏览器进行DNS查找时,DNS解析器返回时间是其记录的TTL的剩余时间。

浏览器的视角
windows上的DNS缓存由DNS Client服务进行管理,可以使用ipconfig命令来产看和刷新DNS Client服务,重新启动也可以清空DNS Client服务缓存,重新启动浏览器会清空浏览器缓存,但不会清空DNS CLient缓存。

IE
当网络操作中心尝试通过DNS变化来转移流量时,这对它们来说是个重要的信息。如果一个IP上的流量已经被转移走,但该IP仍在运行,则使用旧的DNS记录的IE用户至少需要30分钟才能更新DNS,访问站点的活跃用户会一直使用旧的IP而不会更新DNS,直到发生错误。

减少DNS查找
减少唯一主机名的数量就可以减少DNS查找的数量,它会潜在地减少页面中并行下载的数量,避免DNS查找降低响应时间,但减少并行下载可能会增加响应时间。

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有