什么是HTTPDNS跟随阿里的httpdns demo一步一步了解httpdns

什么是HTTPDNS跟随阿里的httpdns demo一步一步了解httpdns,第1张

HTTPDNS使用HTTP协议进行域名解析,代替现有基于UDP的DNS协议,域名解析请求直接发送到阿里云的HTTPDNS服务器,从而绕过运营商的Local DNS,能够避免Local DNS造成的域名劫持问题和调度不精准问题。

https://github.com/aliyun/alicloud-android-demo.git

普通场景 就是普通的http请求

sni场景 就是 server name Indication 场景

选择里面的 httpdns_android_demo 打开MainActivity。

先看看普通请求,

从这例子不难看出,阿里的demo首先是创建一个url连接,获取host

host就是不包含http 的域名(比如 s.taobao.com )然后调用通过sdk中的 String ip = httpdns.getIpByHostAsync(url.getHost()) 也就是通过阿里自己的http请求查询这个host对应的ip地址,如果查询成功,那么HttpURLConnection会被重新创建,而且是通过ip进行创建,另外为了不丢失域名,所以这里做了一个操作就是设置请求头 "Host"

也就是调用 conn.setRequestProperty("Host", url.getHost())

整个过程就是通过 域名查询ip,然后通过ip进行请求的操作,

但是这个业务逻辑本身是dns自身做的事情,现在已经绕过了,直接交给阿里的http dns服务器进行操作。

不过不管怎么操作,这httpdns自身还是得通过运营商的dns进行请求,当然他们自己的也可以做缓存,或者ip地址可靠也可以直接访问比如

http://203.107.1.33/100000/d?host=www.aliyun.com

他们是这样说的

考虑到服务IP防攻击之类的安全风险,为保障服务可用性,HTTPDNS同时提供多个服务IP,当某个服务IP在异常情况下不可用时,可以使用其它服务IP进行重试。上述文档中使用的 203.107.1.33 是其中一个服务IP。

HTTPDNS提供 Android SDK 和 iOS SDK ,两个平台的SDK中已经做了多IP轮转和出错重试的策略,通常情况下,建议开发者直接集成SDK即可,不需要自己手动调用HTTP API接口。

如果使用场景特殊,无法使用SDK,需要直接访问HTTP API接口,请提 工单 联系我们,我们将根据您的具体使用场景,为您提供多个服务IP和相关的安全建议。

具体参考 https://help.aliyun.com/document_detail/52679.html?spm=a2c4g.11186623.2.21.11321d22lF9Vbp#1.1 访问方式

再看看https

处理重定向

预解析域名

顾名思义,在请求某个东西之前先请求,比如app刚打开的时候。

这样通过sdk进行查询就会直接从缓存中取出。

降级解析

降级解析就是不用他们的dns,使用运营商的。

处理webview

其他demo

参考

https://help.aliyun.com/document_detail/30143.html

okhttp接入httpdns最佳实践

https://help.aliyun.com/document_detail/52008.html

简单记录集成阿里云HTTPDNS服务的过程

以上来自阿里云HTTPDNS文档。

HTTPDNS是移动研发平台提供的服务,请参考 EMAS 快速入门 开通服务。

按照以上官方文档配置,在同步工程后,会报错

修改如下

https://github.com/milovetingting/Samples


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/423067.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-25
下一篇2023-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存