zoukankan      html  css  js  c++  java
  • HTTP03--DNS知识

    一、域名解析过程

    1. 浏览器检查自身缓存,缓存时间为几分钟到小时不等,通过设置TTL属性确定。

    2. 若1未找到,则查OS缓存,如windows下的host文件,linux的/etc/hosts文件。

    3. 查询本地域名服务器LDNS,即系统配置的DNS服务器地址,一般为SPA(互联网应用提供商),即电信等,一般在你所在城市的某个角落。

    4. 若LDNS未命中,则想RDNS(根域名服务器)发请求。

    5. RDNS返回给LDNS一个所查询域的主域名服务器(gTLD server)地址。gTLD是国际顶级域名服务器,如com.cn.org等,全球有13台左右。

    6. LDNS向上一步返回的gTLD服务器发请求。

    7. gTLD服务器查找并返回对应的NameServer地址,这个地址通常是你注册的域名服务器。

        例如你在某个域名服务提供商申请的域名,那么这个解析任务则由该域名服务提供商负责。

    8. Name Server查询域名与IP的对应关系,正常会返回一个IP地址与TTL给LDNS。

    9. LDNS会缓存这个结果和TTL(设置缓存时间)。

    10. 将结果返回给用户,用户操作系统根据TTL值,也将该记录缓存到系统,域名解析结束。  

    二、跟踪域名解析过程

    Linux下一般用dig,Windows下一般用nslookup。

    三、清除域名缓存

    1. windows下,ipconfig /flushdns

    2. linux下,/etc/init.d/nscd restart

    3. Java中,JVM会缓存DNS结果,缓存在InetAddress类中。有2种缓存机制,一种缓存正确,一种缓存失败的解析结果。

        配置参数在  %JAVA_HOME%/lib/security/java.security中,配置项分别为networkaddress.cache.ttl和networkaddress.cache.negative.ttl,

        默认值分别为-1(永不失效)和10(缓存10秒)。

    注意:使用InetAddress解析域名时,一定要使用单例模式,因为每创建一次InetAddress类,都要进行一次完整的域名解析过程,影响效率。

    四、常用域名解析方式

       

  • 相关阅读:
    HDU 1501 Zipper(DFS)
    HDU 2181 哈密顿绕行世界问题(DFS)
    HDU 1254 推箱子(BFS)
    HDU 1045 Fire Net (DFS)
    HDU 2212 DFS
    HDU 1241Oil Deposits (DFS)
    HDU 1312 Red and Black (DFS)
    HDU 1010 Tempter of the Bone(DFS+奇偶剪枝)
    HDU 1022 Train Problem I(栈)
    HDU 1008 u Calculate e
  • 原文地址:https://www.cnblogs.com/ulli/p/6255138.html
Copyright © 2011-2022 走看看