我们99DNS从以下几个方面来了解httpdns:
1.传统的DNS(下文称LocalDNS)的原理
2.HTTPDNS的原理
3.HTTPDNS 解决了LocalDNS的哪些问题?
4.HTTPDNS适用的场景有哪些?
LocalDNS的原理
DNS解析详细过程:
用户输入网址如http://www.baidu.com 回车–>游览器解析网址,获取域名,解析域名。
① 先是向游览器中找是否有此域名的缓存,如果有则解析结束,没有则继续查找操作系统缓存中是否有这个域名对应的dns结果。
② 如果以上两则都未能命中,则游览器会向系统网络配置中已经配好的LocalDNS发送解析请求,请求中携带着要解析的域名
这个dns称为本地区的域名服务器(LocalDNS),通常离我们本地电脑不会太远。
③ 如果这个LocalDNS还是未能命中,就直接到Root Server(根域名服务器)请求解析,根域名解析器会返回给LocalDNS服务器一个所查寻域的顶级域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器,包含.com、.cn、.org等后缀域名解析,所有提供域名注册的注册商必须在此DNS服务器中注册。
④ LocalDNS拿到这个gTLD的地址后,再带着要解析的域名向gTLD发起解析请求。gTLD服务器查找并返回此域名对应的Name Server域名服务器(或者叫二级域名服务器)的地址,这个Name Server通常就是你注册的域名服务器。
⑤ LocalDNS又再次获得Name Server地址,再次请求,这时Name Server会查询所有存储的域名与IP映射的关系表单,结果连同IP和一个TTL值返回给LocalDNS域名服务器。LocalDNS拿到IP和TTL,先根据TTL值缓存此IP,最后将IP和TTL返回给用户系统。系统根据TTL值缓存在本地缓存中。
HTTPDNS的原理
HTTPDNS是使用HTTP协议向DNS服务器的进行请求,代替传统的DNS协议使用UDP协议向DNS服务器的进行请求,绕开了运营商的Local DNS,简化了请求的复杂性,避免了使用运营商Local DNS造成的劫持和跨网问题。
解析详细过程:
用户输入网址如http://www.zhanke.com 回车–>游览器解析网址,获取域名,解析域名。
① 先是向游览器中找是否有此域名的缓存,如果有则解析结束,没有则继续查找操作系统缓存中是否有这个域名对应的dns结果。
② 如果以上两则都未能命中,则游览器会向你部署HTTPDNS服务器发送HTTP请求(直接访问HTTPDNS的IP),HTTP服务器返回域名解析结果,然后浏览器缓存起来。
HTTPDNS解决了LocalDNS的哪些问题
1、DNS劫持;
前面我们有讲到,运营商的dns服务器是核心(LocalDNS大多数为运营商DNS服务器),处在整个DNS解析的交互的中心,这里容易发生劫持。而HTTPDNS直接通过ip地址去访问HTTPDNS服务器,从根本上解决了这个问题。
2、平均访问延迟下降:
从第一章节可以看出,localDNS的解析过程十分复杂,需要递归好几次。
而HTTPDNS,由于是IP直接访问HTTPDNS服务器,则只需要一个来回就能拿到解析的结果。
3、用户连接失败率下降:
通过算法降低以往失败率过高的服务器排序,通过时间近期访问过的数据提高服务器排序,通过历史访问成功记录提高服务器排序。如果ip(a)访问错误,在下一次返回ip(b)或者ip(c) 排序后的记录。(LocalDNS很可能在一个ttl时间内(或多个ttl)都是返回记录)。
HTTP DNS的适用场景
1、对首屏时延要求比较高的APP或者网页;
2、希望降低访问延迟、减少跨网访问的资讯、游戏类APP;
3、希望降低连接失败率,提升业务成功率的通用APP;
4、域名屡次被劫持,希望用户访问顺畅无阻的APP;