zoukankan      html  css  js  c++  java
  • 关于DNS优化的策略

    前言

    客户端向服务端发起通信,会经过DNS解析查找,本文主要讲的就是关于DNS解析查找的优化

    DNS解析流程

    1. 查找浏览器缓存。

    2. 查找系统缓存。

    3. 查找路由器缓存。

    4. 查找ISP DNS 缓存。

    5. 迭代查询。

    优化思路

    1. 减少DNS查找,避免重定向

    2. 使用浏览器DNS缓存 、计算机DNS缓存、 服务器DNS缓存,防止DNS迭代查询;

    3. 使用Keep-Alive特性 来减少DNS查找的频率;

    4. 使用较少的域名(服务器主机)来减少DNS查找的数量。

    影响DNS缓存的因素

    1. 首先,服务器可以表明记录可以被缓存多久。查找返回的DNS记录包含了一个存活时间(Time-to-live,TTL)值。该值告诉客户端可以对该记录缓存多久。

    2. 尽管操作系统缓存会考虑 TTL 值,但浏览器通常忽略该值,并设置它自己的时间限制。

    3. 此外,HTTP 协议中的 Keep-Alive 特性可以同时覆盖 TTL 和浏览器的时间限制。换句话说,只要浏览器和Web服务器愉快地通信着,并保持 TCP 连接打开的状态,就没有理由进行 DNS 查找。

    4. 浏览器对缓存的 DNS 记录的数量也有限制,而不管缓存记录的时间。如果用户在短时间内访问了很多具有不同域名的网站,较早的 DNS 记录将被丢弃,必须重新查找该域名。

    5. 不过,要记得即便浏览器丢弃了 DNS 记录,操作系统可能依然保持着该记录,这能扭转一下局面,因为无需通过网络发送查询,从而避免了明显的延迟。

    6. 当客户端的DNS缓存为空时(浏览器与操作系统缓存为空时),DNS查找的数量与Web页面中唯一主机名的数量相等。减少唯一主机名的数量就可以减少DNS查找的数量。

    7. 但减少唯一主机名的数量会潜在地减少页面中并行下载的数量。(HTTP1.1,浏览器对于同一个服务器的并行连接数有限制)因此,虽然避免 DNS 查找降低了相应时间,但减少并行下载可能会增加响应时间。所以,在减少 DNS 查找与允许高速并行下载之间做权衡,建议使用 2-4 个服务器主机。

     

    DNS的预解析

    可以通过用meta信息来告知浏览器, 我这页面要做DNS预解析

    <meta http-equiv="x-dns-prefetch-control" content="on" />
    可以使用link标签来强制对DNS做预解析:
    <link rel="dns-prefetch" href="http://ke.qq.com/" />
  • 相关阅读:
    5.2 输出一张随机图片
    5.1 Request 获取请求数据的几种方法
    5.Servlet 对象(request-response)
    4.Servlet(动态web资源)
    复选框、单选按钮、下拉列表的定义
    选择屏幕输入值的控制
    屏幕元素创建的基本语法
    屏幕对象的F1/F4输入帮助功能
    函数alv下的颜色设置
    BDIA增强
  • 原文地址:https://www.cnblogs.com/liuXiaoDi/p/13070444.html
Copyright © 2011-2022 走看看