DNS优化加速

在 app 中网络请求中使用了 DSN映射加速。

原理

其原理就是:用域名映射对应的 ip 地址,直接是用 ip地址来做请求越过域名解析过程。(同时 app 中去掉了 afnet 的域名验证)

实现过程:

第一步

在 app 初始化时通过一个全局类 ConfigManager 来通过指定的网络请求来获取 DNS 映射表(即 json 数据)同时保存在全局类中。

第二步

在封装的网络请求中业务逻辑分开。底层一个NetKit 直接操作 AFNetworking来做 post,get,down,up请求(是通过 AFURLSessionManager 类中的请求方法)。同时通过 NSDictionary 将每一个 url 生成的 AFHTTPSessionManager 对象映射保存起来。

上层业务类 Engine 类对 NetKit 返回的 data 进行一写业务逻辑操作,如数据解析,DNS加速,请求出错重新请求,数据统计等。

通过 ConfigManager 类获取 DSN 映射表根据请求的 url来获取 ip 地址。 通过 NSURLComponents 来改变 url 的 host。 根据新的 url 生成 AFHTTPSessionManager 对象重新保存在 NSDictionary 中。

第三步

通过 url 来获取字典中的 AFHTTPSessionManager 对象,根据该对象来做网络请求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 基础知识 1.1 3种常见的计算机体系结构划分 OSI分层(7层):物理层、数据链路层、网络层、传输层、会话...
    Mr希灵阅读 20,013评论 6 120
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,514评论 19 139
  • 14.1 引言 域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换...
    张芳涛阅读 5,909评论 0 8
  • 目录 网络基本概念 TCP/IP协议簇基本概念 HTTP 网络开发技术解决方案 数据解析 网络优化 1. 网络基本...
    Ryan___阅读 5,182评论 1 0
  • 我和男友均为小硕,2014年秋毕业,今年国庆期间刚刚入手第二套房。谈谈我们的买房经历。 第一套房子买在重庆郊区区,...
    苏小渝阅读 8,262评论 55 29