问题1:HTTPDNS能结合CDN一起使用吗 ?
可以。
问题2:服务IP的调用是否有QPS上限?
没有上限。
问题3:有对接WebView HTML(静态网页)的方法么?
WebView场景已经在文档中进行了说明,请参照iOS端WebView业务场景“IP直连”方案说明。
问题4:客户端报UnknowHost,是否域名解析出了问题?
是的,DNS解析失败。
问题5:可否将HTTPDNS中的utdevice去掉?因为我们用的支付是一个三方的,里面集成了支付宝?
支付宝中的utdevice,接口没放出来,所以不可以。请按照文档进行集成。
问题6:控制台域名解析量的数据统计是实时的吗?
解析次数具体是怎么刷新的,感觉解析了好几次,但是上面没有更新数据 ?
展示的是服务端请求量统计,解析次数不是实时的,是按天更新的,今天看昨天的数据。点详情会有具体的日期对应的次数。
问题7:集成HTTPDNS后没有请求头?解析数据中没有host这个参数?
代码中需设置参数 HOST,这个属于网络请求的
请求头
;如果设置了请求头,可打印请求头数据,请在请求头中查看 。
问题8:Demo里对客户端处于代理情况下会进行降级处理,有没有其他情况下也需要做降级处理?
建议只要调API返回空IP,就需要进行降级处理,采用标准的DNS流程进行兜底。
问题9:WebView为什么只设置拦截GET请求,不能拦截带body的POST请求?
HTTPDNS WebView中因为无法拿到所有请求信息,所以不拦截body信息。可参考iOS端WebView业务场景“IP直连”方案说明。
问题10:IP解析的原则是否是“就近原则”?
HTTPDNS的“就近”指的是,如果你们权威DNS设置了按地域调度的,那么通过 HTTPDNS解析时,也能保持这个解析策略。
问题11:HTTPDNS将域名解析成两个(或多个)不同的IP,如需要控制各个IP的权重该如何处理?
域名权重配置是调度策略,HTTPDNS本身不干预调度策略,这个可以在域名的权威DNS处设置。
问题12:对于国外用户,会不会解析为国内IP,接入HTTPDNS,会对国外用户有什么影响?
HTTPDNS不改变域名的解析策略,策略在你们域名的权威DNS上设置;
对 HTTPDNS 而言,和这些场景混合无关,只和域名本身有关。HTTPDNS是根据权威DNS的解析结果返回结果的,如果权威DNS做了分线路、分地域的解析,HTTPDNS自动也会支持。
问题13:混合阿里云的CDN、高防IP和BGP三种,HTTPDNS可以路由到最近节点吗?
对HTTPDNS而言,和这些场景混合无关,只和域名本身有关 。HTTPDNS是根据权威DNS的解析结果返回结果的,如果权威DNS做了分线路、分地域的解析,HTTPDNS自动也会支持。
问题14:SDK预解析setPreResolveHosts操作是指让HTTPDNS服务器那边刷新DNS缓存吗?
并非如此,主要是App端预先取一些结果,HTTPDNS服务器的缓存是否刷新取决于是否过期,预解析的意思是在你还没有要用到相关域名的IP之前就进行解析,使得当你需要的时候IP已经在解析完成进行过缓存了。
问题15:HTTPDNS能解析未备案的域名吗?
HTTPDNS是一个递归解析服务,解析结果是透传权威域名服务器返回内容。
HTTPDNS解析域名和域名备案与否没有直接关系,备案相关规定是工信部提的,具体事宜可以参考:备案 。
问题16:关于降级,如果IP能获取到,但是在用IP替换进行请求时候发生错误,比如400,类似的情况是否需要降级?
域名解析层降级:此时已经过了DNS阶段,能返回400,说明解析的IP地址正确,这是属于直连IP访问时的接入问题,前期接入HTTPDNS时测试好后,理论上不应该出这类400问题。
业务层面:如果业务返回400,看你们本身App端的降级或重试策略,继续遵循即可,和是否使用HTTPDNS关系不大。
问题17:SDK持久化缓存setCachedIPEnabled如果不设置,是不是每次调用getIPByHostAsync都会去HTTPDNS服务器获取IP?
并非如此,
setCachedIPEnabled
开启后,会在打开手机存储后加载本地持久缓存到内存缓存中,每个IP都对应有TTL(过期时间),在TTL过期后,也会进行网络请求,进行网络请求后会更新本地的持久化缓存。如果不开启,因为每个IP都有TTL,在TTL没有过期期间,也是优先使用内存缓存的IP,不会走网络请求。
问题18:HTTPDNS鉴权的secrectkey的作用是什么?10分钟失效后要怎么做?
阿里云用户使用HTTPDNS接口验权时需要这个secrectkey,由服务器负责生成;
查看方式:控制台>鉴权配置>鉴权secretkey;鉴权实效性,接入时是不用处理的,主要是为了防止网络请求被抓包盗用。
SDK内部在做网络请求时,每次都是有重新设置鉴权时间戳的操作,不用考虑鉴权时间戳是否会过期。
问题19:初始化时报错InvalidSignature
具体示例:
Async request for www.aliyun.com error: Error Domain=httpdns.request.lookupAllHostsFromServer-HTTP Code=10004 "(null)" UserInfo={ErrorMessage=InvalidSignature}
如不使用secretKey正常解析,使用secretKey解析失败,则检查:
secretKey与accountId是否对应
secretKey参数值是否正确
注意secretKey不是appSecret;
secretKey获取方式:
参考“问题”;
或查看AliyunEmasServices-Info.plist文件中httpdns.secretKey的值;
问题20:如何关闭HTTPDNS业务?
EMAS控制台页面没有按钮直接关闭该产品。
您可在EMAS HTTPDNS控制台域名管理中删除所有域名,使之无法解析,之后就不会计费了。
或者代码中不调用接口,可在App集成时删除或注销HTTPDNS的初始化。
问题21:HTTPDNS WebView对进行重定向的链接要递归做域名替换,这个是必要的吗?
是有必要的,如果不管重定向请求,网络框架会自动完成重定向后的请求,此时还是通过重定向后的域名进行请求,依然会遇到域名访问时所遇到的域名劫持等问题。
问题22:HTTPS场景中遇到泛域名问题该如何处理?
现官网提供的demo与最佳实践部分都暂未对泛域名的情况作出处理,
如遇到泛域名的场景就要在证书校验部分做修改;
比如abc.taobao.com他的证书HOST已经不是abc.taobao.com,可能是
*.taobao.com
,那么就要在证书校验的地方做下对应的修改。参考:Android端HTTPS(含SNI)业务场景:IP直连方案或iOS端HTTPS(含SNI)业务场景:IP直连方案说明 。