文档

HTTPDNS产品功能与使用上关键问题汇总

更新时间:

问题1:HTTPDNS能结合CDN一起使用吗 ?

  • 可以。


问题2:服务IP的调用是否有QPS上限?

  • 没有上限。


问题3:有对接WebView HTML(静态网页)的方法么?


问题4:客户端报UnknowHost,是否域名解析出了问题?

  • 是的,DNS解析失败。


问题5:可否将HTTPDNS中的utdevice去掉?因为我们用的支付是一个三方的,里面集成了支付宝?

  • 支付宝中的utdevice,接口没放出来,所以不可以。请按照文档进行集成。


问题6:控制台域名解析量的数据统计是实时的吗?

  • 解析次数具体是怎么刷新的,感觉解析了好几次,但是上面没有更新数据 ?

  • 展示的是服务端请求量统计,解析次数不是实时的,是按天更新的,今天看昨天的数据。点详情会有具体的日期对应的次数。


问题7:集成HTTPDNS后没有请求头?解析数据中没有host这个参数?

  • 代码中需设置参数 HOST,这个属于网络请求的 请求头 ;

  • 如果设置了请求头,可打印请求头数据,请在请求头中查看 。


问题8:Demo里对客户端处于代理情况下会进行降级处理,有没有其他情况下也需要做降级处理?

  • 建议只要调API返回空IP,就需要进行降级处理,采用标准的DNS流程进行兜底。


问题9:WebView为什么只设置拦截GET请求,不能拦截带body的POST请求?


问题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场景中遇到泛域名问题该如何处理?