一、前言谈到优化,首先第一步,肯定是把一个大功能,拆分成一个个细小的环节,再单个拎出来找到可以优化的点,App 的网络优化也是如此 。
在 App 访问网络的时候,DNS 解析是网络请求的第一步,默认我们使用运营商的 LocalDNS 服务 。有数据统计,在这一块 3G 网络下,耗时在 200~300ms,4G 网络下也需要 100ms 。
解析慢,并不是 LocalDNS 最大的问题,它还存在一些更为严重的问题,例如:DNS 劫持、DNS 调度不准确(缓存、转发、NAT)导致性能退化等等,这些才是网络优化最应该解决的问题 。
想要优化 DNS,现在最简单成熟的方案,就是使用 HTTPDNS 。
今天就来聊聊,DNS、HTTPDNS,以及在 Android 下,如何使用 OKHttp 来集成 HTTPDNS 。
二、DNS 和 HTTPDNS2.1 什么是 DNS
在说到 HTTPDNS 之前,先简单了解一下什么是 DNS?
在网络的世界中,每个有效的域名背后都有为其提供服务的服务器,而我们网络通信的首要条件,就是知道服务器的 IP 地址 。
但是记住域名(网址)肯定是比记住 IP 地址简单 。如果有某种方法,可以通过域名,查到其提供服务的服务器 IP 地址,那就非常方便了 。这里就需要用到 DNS 服务器以及 DNS 解析 。
DNS(Domain Name System),它的作用就是根据域名,查出对应的 IP 地址,它是 HTTP 协议的前提 。只有将域名正确的解析成 IP 地址后,后面的 HTTP 流程才可以继续进行下去 。
DNS 服务器的要求,一定是高可用、高并发和分布式的服务器 。它被分为多个层次结构 。
- 根 DNS 服务器:返回顶级域 DNS 服务器的 IP 地址 。
- 顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址 。
- 权威 DNS 服务器:返回相应主机的 IP 地址 。
文章插图
当开始 DNS 解析的时候,如果 LocalDNS 没有缓存,那就会向 LocalDNS 服务器请求(通常就是运营商),如果还是没有,就会一级一级的,从根域名查对应的顶级域名,再从顶级域名查权威域名服务器,最后通过权威域名服务器,获取具体域名对应的 IP 地址 。
文章插图
DNS 在提供域名和 IP 地址映射的过程中,其实提供了很多基于域名的功能,例如服务器的负载均衡,但是它也带来了一些问题 。
2.2 DNS 的问题
DNS 的细节还有很多,本文就不展开细说了,其问题总结来说就是几点 。
推荐阅读
- 一招解决80%系统问题,win10“隐藏”高级选项,新手也能修电脑!
- 网站SEO优化关键词选择的原则
- 如何判断一个网站SEO优化的好坏
- 网络推广,网站优化和SEO的分别
- 网站优化如何达到想象的效果
- 网站优化步骤小结
- 建设网站注意这五点有利于网站优化
- 大学|大学4个专业“越老越吃香”,毕业不愁找工作,女生报考更有优势
- 自动驾驶|美国一辆无人汽车被截停后居然“逃逸” 公司回应
- 华为|长安全新品牌曝光!命名“深蓝” 首车或长安、华为、宁德时代联手打造