Dns与httpDNS的区别
一、什么是DNS
-
DNS(Domain Name System,域名系统)是互联网的一项服务。它是域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 UDP 端口53,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
-
举例来说,当一台设备要访问网络上另外一台设备时,必须首先获知其地址,而这个地址是 TCP/IP 中的 IP 地址,是由四段以“.”分开的数字组成(以 IPv4 的地址为例),但是由于 IP 地址难以记忆,用户难以记忆,因此采用了域名系统来管理名字和 IP 的对应关系。所以,域名只是一个方便记忆的名字,代表了公司或者个人,实际上对网络资源的访问还是得通过IP地址去访问,DNS 解析的作用就是将域名解析成 IP 地址。
-
域名由一个或多个部分组成,从右往左依次是顶级域名,二级域名,三级域名……,不一定有这么多级域名,但是也可能出现四级等,通常,子域是从属于其父域的域。
从 DNS 解析过程,我们知道 DNS 的不足:
- 域名缓存:上次进行的缓存,路由不一定最短
- 域名转发:域名查询可能会跨运营商
- 解析耗时:DNS 的查询过程需要递归遍历多个 DNS 服务器,才能获得最终结果。可能会带来一定的延时。
- 域名劫持:本地运营商可能对某些域名进行劫持、屏蔽。
二、什么是httpDNS
HTTPDNS 就是使用 HTTP 协议(不使用DNS协议)向 httpDNS 服务器进行请求,获取想访问域名对应的IP 地址,简化了请求的复杂性。在请求 httpDNS 服务器的时候,使用 IP 直接访问。跳过使用系统DNS服务器解析的过程,使用httpDNS替代DNS解析系统的功能。(前提是内置了httpDNS服务器的ip地址)一般用于App,不可用于浏览器。
HTTPDNS 的优点:
- 跳过 LocalDNS,防止本地DNS劫持
- 直接通过 IP 访问,平均访问延迟下降
- 服务器算法筛选最佳节点 IP,提升请求成功率
- 快速更换 IP(不受TTL的限制)
HTTPDNS 的适用场景:
- App 防止恶意劫持
- 对访问速度要求高的应用
- 应用、视频加速服务,配合CDN,通过DNS服务器返回最佳节点,提高访问效率
- 提供更灵活的流量调度能力
主要应用在以下几类移动 App 开发中:
- 资讯、游戏类 App: 希望降低访问延迟、减少跨网访问,注重快速响应体验。
- 电商类 App: 希望降低连接失败率,提高业务工作率,注重访问请求稳定性。
- 社交类 App: 域名屡次被劫持,希望用户访问顺畅无阻。
- 音视频类 App: 对流畅度要求高,提升音乐、视频播放的连接成功率。
总结
HTTPDNS 基于 HTTP 协议向自己的 DNS 服务器发送域名解析请求,替代基于 DNS 协议向运营商 Local DNS 发起解析请求的传统方式,可以避免 Local DNS 造成的域名劫持和跨网访问问题,解决移动互联网服务中域名解析异常带来的困扰。
从原理上来讲,HTTPDNS 只是将域名解析的协议由 DNS 协议换成了 HTTP 协议,并不复杂。但是这一微小的转换,却带来了巨大的收益,其中 DNS 劫持(域名劫持)就是最为严重的一个问题,通过某些方式篡改了用户正常访问的 web 网页,插入广告或者其他内容,在页游时代就经常发生。而移动 App 主要导致无法访问、成功率下降等问题。同时,在今天移动互联网高度成熟环境下,用户体验越发重要,智能解析,就近接入,提升连接成功率,快速响应,确保用户访问顺畅,这些都是 HTTPDNS 的优势。移动互联网的下半场,是对用户体验的极致追求,也是对技术的融合创新的极致追求!