规则策略匹配逻辑说明

本文介绍自定义解析规则策略的匹配逻辑。

规则策略匹配逻辑说明

使用规则策略的解析流程如下所示,通过请求接口中携带的参数来匹配具体的规则,规则从上往下串行匹配,一旦有规则命中,则终止匹配并返回已经匹配规则的结果。如果现有的规则都没有被命中,则去权威服务器获取结果并返回。

image

单条规则参数匹配的逻辑如下:

  • 接口携带的参数完整匹配规则中配置的参数, 则匹配成功。完整匹配是指,解析参数是规则配置参数的子集或全集。

  • 如果规则中未配置参数,则该条规则匹配成功。

  • 规则中多个参数之间是「且」的关系。

下面举例说明具体的匹配逻辑:

假如需要自定义解析的域名是:www.example.com

示例1:

规则 A 参数配置如下:

参数名

参数值

osType

Android

规则 B 参数配置如下:

参数名

参数值

osType

iOS

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

携带的参数:

参数名

参数值

osType

iOS

匹配结果:

示例1中,携带的参数完全匹配到规则B,HTTPDNS 服务端会返回规则 B 中的记录值

示例2:

规则 A 参数配置如下:

参数名

参数值

osType

iOS

bizType

app

规则 B 参数配置如下:

参数名

参数值

osType

iOS

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

携带的参数:

参数名

参数值

osType

iOS

匹配结果:

示例2中,因为规则的参数是「且」的关系,根据完全匹配的原则,携带的参数完全匹配到 规则B,HTTPDNS 服务端会返回规则 B 中的记录值

示例3:

规则 A 参数配置如下:

参数名

参数值

osType

iOS

bizType

car

规则 B 参数配置如下:

参数名

参数值

osType

iOS

bizType

car

region

hangzhou

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

region

shanghai

携带的参数:

参数名

参数值

osType

iOS

bizType

car

region

hangzhou

匹配结果:

示例3中,根据完全匹配和优先返回的原则,携带的参数完整匹配到规则A,HTTPDNS 服务端会优先返回规则 A 中的记录值

示例4:

规则 A 参数配置如下:

参数名

参数值

osType

Android

bizType

car

规则 B 参数配置如下:

参数名

参数值

osType

iOS

bizType

car

region

hangzhou

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

region

shanghai

携带的参数:

参数名

参数值

osType

iOS

匹配结果:

示例4中,根据完全匹配和优先返回的原则,携带的参数没有命中任何规则,HTTPDNS 服务端会返回权威服务器的查询结果

示例5:

规则 A 参数配置如下:

参数名

参数值

osType

Android

bizType

car

规则 B 没有配置参数。

规则 C 参数配置如下:

参数名

参数值

osType

Android

bizType

car

region

shanghai

携带的参数:

参数名

参数值

osType

iOS

匹配结果:

示例 5 中,根据完全匹配和优先返回的原则,携带的参数完整匹配到规则 B,HTTPDNS 服务端会优先返回规则 B 中的记录值