HTTPDNS-最佳实践|学习笔记

简介: 快速学习 HTTPDNS-最佳实践

开发者学堂课程【HTTPDNS:最佳实践】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/408/detail/5247


HTTPDNS-最佳实践


内容介绍

一、 产品概述

二、 产品功能

三、 文档与帮助


一、产品概述

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

基于  HTTPDNS 的稳定性优势,众多客户信任并使用阿里云 HTTPDNS 产品


二、产品功能

简洁的 API 接口,简单通用

HTTPDNS 对外提供简洁的 API 接口,典型场景是移动端 APP 直接调用该接口解析域名,也支持在服务端调用的场景。

对于移动端的场景,提供完整的  AndroldIOS 使用示例。安全、精准的解析结果

使用 HTTP 协议访问阿里云的服务端获得域名解析结果,绕过运营商的  Local DNS .避免域名劫持。

由于运营商策略的多样性,其 Local DNS 的解析结果可能不是最近,最优的节点, HTTPDNS 能够 直接得到客户端的出口网关 IP ,从而能够更准确地判断客户瞒的地区和运营商,得到更精准的解析结果。

全网域名支持

支持全网域名的解析,包括在阿里云(万网)注册的域名,和其它第三方的域名。


三、文档与帮助

HTTPS  (含SNI) 业务场景“ IP 直连"方案 说明

1. 背景说明

本文主要介绍  HTTPS  (含SN)业务场景下在  Androld 端和 IOS 端实现  IP 直连"的通用解决方案。如果您是  Android 开发者,并且以  OkHttp 作为网络开发框

架,由于  | OkHttp 提供了自定义 DNS 服务接口可以优雅地实现 IP 直连。

其方案相比通用方案更加简单且通用性更强,推荐您参考  HttpDns+OHkHttp  最佳实践接入  HttpDns。 

1.1 HTTPS

发送  HTTPS  请求首先要进行  SSL/TLS 握手,握手过程大致如下:

1.客户端发起握手请求,携带随机数、支持算法列表等参数。

2.服务端收到请求,选择合适的算法,下发公钥证 书和随机数。

3.客户端对服务端证书进行校验,并发送随机数信息,该信息使用公钥加密。

4.服务端通过私钥获取随机数信息。

5.双方根据以上交互的信息生成  session ticket  ,用作该连接后续数据传输的加密密钥。

上述过程中,和  HTTPDNS 有关的是第3步, 客户端需要验证服务端下发的证书,验证过程有以下两个要点:

1.客户端用本地保存的根证书解开证书链,确认服务端下发的证书是由可信任的机构颁发的。

2.客户端需要检查证书的  domain 城和扩展域,看是否包含本次请求的  host。

如果上述两点都校验通过,就证明当前的服务端是可信任的,否则就是不可信任,应当中断当前连接。

当客户端使用  HTTPDNS 解析域名时,请求 URL 中的 host 会 被替换成  HTTPDNS 解析出来的 IP ,所以在证书验证的第2步,会出现  domain 不匹配的情况,导致 SSLTLS 握手不成功。 

2. HTTPS 场景(非SNI) 解决方案

针对" domain 不匹配”问题,可以采用如下方案解决:  hook 证 书校验过程中第2步,将 IP 直接 替换成原来的域名,再执行证书验证。 

如何利用  HTTPDNS 降低 DNS 解析开销

慢更新策略:

绝大多数场景下业务域名的  IP 信息变更并不频繁,特别是在单次 APP 的使用周期内,域名解析获取的 lP 往往是相同的(特殊业务场景除外) .因此我们可以利用 DNS 懒更新策略来实现 TTL 过期后的 DNS 快速解析。 

所谓 DNS 侧更新策略即客户端不主动探测域名对应 IP 的 TTL 时间,当业务请求需要访问某个业务城名时,查询内存缓存并返回该业务域名对应的 lP 解析结果。如果 lP 解析结果的 TTL 已过期,则在后台进行异步 ONS 网络解析与缓存结果更新。通过上述策略,用户的所有 DNS 解析都在与内存交换,避免了网络交引入的延迟。

HTTPDNS 域名解析厂景下如何使用  Cookie?

你使用的问题那么这个里面的话呢在云栖社区里面会有一个详细的说明,也是说的很详细的包括怎么样去配置怎么样去指定  domain 然后配置策略 iOS 的配置情况等等。

HttpDns+OkHttp 最佳实践

.总结

相比于通用方案 , OkHttp+HttpDns 有以下两个主 要优势:

●实现简单,只需通过实现  Dns 接口即可接入  HttpDns 服务

●通用性强,该方案在  HTTP5,SNI 以及设置 Cookie 等场景均适用。规避了证书校验,域名检查等环节

WebView 业务场景“lP 直连”方案说明

●通过重写 WebViecClient 中以下方法拦截 WebVew 的网络请求,获取请求 URL host 进行  HTTPONS 城名解析。解析完成后处理方式和普通网络请求一致,替换 URL .host 字段,设置。

HTTP Header Host 域,最后返回新请求对应的

WebResourceResponse。

1. /**

2. * 拦截 webView 网络请求(Android API < 21)

3. *只能拦截网络请求的 URL 请求方法、请求内容等无法拦截

4. */

5. public WebResourceResponse shouldInterceptRequest (WebView view,

6.       String ur1);

7.

8. /**

9,* 拦截 webView 网络请求(Android API >= 21)

10.通过解析 webResourceRequest 对象获取网络请求相关信息

12. public WebResourceResponse shouldInterceptRequest (WebView view,

13. webResourceRequest request);

相关文章
|
域名解析 缓存 网络协议
HTTPDNS-快速开始|学习笔记
快速学习HTTPDNS-快速开始
135 0
HTTPDNS-快速开始|学习笔记
|
开发者 网络协议
HTTPDNS技术支持方案|学习笔记
快速学习HTTPDNS技术支持方案
101 0
HTTPDNS技术支持方案|学习笔记
|
域名解析 网络协议 开发者
HTTPDNS-管理控制台使用|学习笔记
快速学习 HTTPDNS-管理控制台使用
108 0
HTTPDNS-管理控制台使用|学习笔记
|
域名解析 JSON API
HTTPDNS 的 API 的说明|学习笔记
快速学习 HTTPDNS 的 API 的说明
167 0
HTTPDNS 的 API 的说明|学习笔记
|
域名解析 缓存 网络协议
HttpClient/HttpURLConnection + HttpDns最佳实践
在Android端如果OkHttp作为网络请求框架,由于其提供了自定义DNS服务接口,可以很优雅地结合HttpDns,相关实现可参考:[HttpDns+OkHttp最佳实践](https://help.aliyun.com/document_detail/52008.html?spm=5176.product30100.6.585.USrgj7)。 如果您使用`HttpClient`或`Http
3105 0
|
移动开发 Java weex
Android端WEEX + HTTPDNS 最佳实践
由于`WebView`并未暴露处设置DNS的接口,因而在`WebView`场景下使用`HttpDns`存在很多无法限制,但如果接入`WEEX`,则可以较好地植入`HTTPDNS`,本文主要介绍在`WEEX`场景下接入`HTTPDNS`的方案细节。
5110 0
|
域名解析 缓存 网络协议
计算机网络 | 图解 DNS & HTTPDNS 原理
计算机网络 | 图解 DNS & HTTPDNS 原理
328 0
计算机网络 | 图解 DNS & HTTPDNS 原理
|
域名解析 缓存 负载均衡
你知道 DNS,那我猜你一定不知道 HTTPDNS
说起 DNS 协议,相信大家都能说出来几句,不是很陌生。 它主要做两个功能:根据名称查到具体的地址;针对多个地址做负载均衡,而且可以在多个地址中选择一个距离我最近的地方,让我访问。 看起来这种方式无懈可击,但其实也有些问题。
你知道 DNS,那我猜你一定不知道 HTTPDNS
|
域名解析 存储 缓存
如何利用HTTPDNS降低DNS解析开销
如何利用HTTPDNS降低DNS解析开销 1. 背景说明 移动场景下DNS的解析开销是整个网络请求延迟中不可忽视的一部分。一方面基于UDP的localDNS解析在高丢包率的移动网络环境下更容易出现解析超时的问题,另一方面在弱网环境下DNS解析所引入的动辄数百毫秒的网络延迟也大幅加重了整个业务请求
955 0
|
缓存 网络协议 API
Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成
Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成一、前言谈到优化,首先第一步,肯定是把一个大功能,拆分成一个个细小的环节,再单个拎出来找到可以优化的点,App 的网络优化也是如此。
3105 0