本文介紹自訂解析規則策略的匹配邏輯。
規則策略匹配邏輯說明
使用規則策略的解析流程如下所示,通過請求介面中攜帶的參數來匹配具體的規則,規則從上往下串列匹配,一旦有規則命中,則終止匹配並返回已經匹配規則的結果。如果現有的規則都沒有被命中,則去權威伺服器擷取結果並返回。
單條規則參數匹配的邏輯如下:
介面攜帶的參數完整匹配規則中配置的參數, 則匹配成功。完整匹配是指,解析參數是規則配置參數的子集或全集。
如果規則中未配置參數,則該條規則匹配成功。
規則中多個參數之間是「且」的關係。
下面舉例說明具體的匹配邏輯:
假如需要自訂解析的網域名稱是: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 中的記錄值。