
为了尽量提高产品可用性,进行了 HTTP DNS 的改造。
普通的网络请求,系统自动通过 DNS Server 将目标域名解析成 IP 地址,然后向这个 IP 地址发送请求完成数据交互。这个解析的过程对于 APP 来说是不可见的。
HTTP DNS 则是 APP 主动向 HTTP DNS Server 发送解析请求,Server 返回目标域名对应的 IP 地址,然后 APP 直接向目标地址发送请求,绕开了系统解析的这个环节,避免了用户所处环境带来的干扰。
当然 HTTP DNS Server 也是通过 IP 地址直接访问的,比如 DNSPod 免费版的 119.29.29.29,还有其他厂商可以自己寻找。
根据改动范围是否设计后端(包括运维)有两种方法
这种改造方案非常简单,后端 Web Server 将 IP 地址直接绑定到目标站点,APP 在发起请求前,直接将所有 URL 中自己域名的部分换为通过 HTTP DNS 获得目标 IP 即可。
当然如果后端有针对域名的逻辑也需要处理下,比如防盗链用的 Referer 校验等。
另外有的第三方库(比如支付宝)需要 APP 传入 Server 回调地址。这种是没必要改的,毕竟请求来自 IDC 机房等网络环境很好的场合。不过一定要改的话,这种地址可能在第三方平台上有绑定审核,实际动手前请提前准备审核。
不同公司合作开发或者一台 Server 托管了若干站点的情况,只能 APP 自己想办法了。这种稍微麻烦点,针对不同用途的 URL 需要做不同的处理。
iOS/Android 都有现成的第三方库可供使用,GitHub 上有新浪和七牛的项目
另外七牛项目的分别发布到了 CocoaPods 和 maven 上更易使用,所以推荐七牛。
安全。如今,移动互联网的安全形势严峻,腾讯通过qq,微信等海量服务积累的安全能力正在不断通过腾讯云开放。微信小程序中,不符合要求的域名和协议是不能请求的,所有的网络请求都要经过httpst协议。腾讯云提供微信小程序证书服务,保证微信小程序域名安全。有了腾讯云提供的移动解析(httpdns)服务,http防劫持和dns防劫持都可以实现。腾讯云将与开发者合作,为用户打造一个安全健康的移动互联网。可以预见,微信小程序的推出将极大地丰富微信生态系统,赋予小程序开发者以权能,而腾讯云将通过云服务和日益成熟的云生态系统降低开发成本和维护难度,陪伴开发者共同进步。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)