网络可优化部分
缓存DNS映射关系
为什么要DNS缓存:减少DNS解析时间,防止DNS劫持、服务器动态部署。
需要注意的是映射关系的及时更新、缓存时间的设定,如果映射出错,使用默认的DNS解析
压缩请求数据
服务器端使用合理的数据结构,减少用户请求延迟。若返回数据太大,会形成部分IP包缓存,从而增加了延迟
请求的安全性
合理的使用AES和RSA加密,尽量使用HTTPS,公钥要及时刷新。可以用两个token。
现阶段苹果公司还允许APP用HTTP协议上架App store。但是,到17年1月1号起,所有上架App store的APP需要全部是使用HTTPS。
合理的并发数目
多个请求并发数目控制,多了容易增加整体延迟,少了无法合理利用CPU性能,同时容易造成劣币驱逐良币的情况
关于请求的保障性
对于关键业务来说尽量要保证100%的成功率,最简单的方式就是采取多次请求的方式确保成功率。
例如在比较麻烦的IM类型APP消息处理方面,需要做本地消息缓存,对于发送失败的消息需要做网络待请求队列,
非关键业务请求制作一次,比如后台偷跑的请求。
网络环境的监控
比如只有在WIFI情况下才能下载,不同的环境做不同的请求策略比较重要
成功率监控措施
对网络请求成功率做统计,存储在本地,一定规模后发送给服务器,可以反映出服务器存在的问题
本篇仅作笔记,参考自
https://zhuanlan.zhihu.com/p/22943142
http://mrpeak.cn/blog/encrypt/