子表达式构建器设置

通过使用 AND、OR、NOT 和括号进行分组,可以使用子表达式构建器,根据子表达式构建复杂的规则条件。当您应用更改时,规则构建器将对规则进行验证。如果找到未配对的括号以及不支持的逻辑运算符,那么将发出警报。

要查看此页面,请单击服务器 > 服务器类型 > Web 服务器 > web_server_name > Intelligent Management > 跟踪规范 > 子表达式构建器

逻辑运算符

以下列表显示了逻辑运算符选项:

表 1. 跟踪逻辑运算符
运算符 描述
OR 逻辑 OR 运算符。
AND 逻辑 AND 运算符。
NOT 逻辑 NOT 运算符。

选择操作数

操作数包含在由运行时用来使规则与作业匹配的分类规则中。例如,如果您指定协议类型等于 HTTP,那么运行时将搜索协议类型为 HTTP 的作业。以下列表显示了操作数选项:

表 2. HTTP 请求操作数
操作数 语法 描述

虚拟主机

virtualhost

请求的虚拟主机目标,用来将 Web 应用程序配置到特定主机名。

虚拟端口

numeric

请求的虚拟端口目标,用来将 Web 应用程序配置到特定端口。

URI

uri

统一资源标识

帮助您识别请求的路径:如果 URL 为 http://host:port/path?p1=v1,那么路径为 path

用户标识

userid 返回发送请求的已认证的用户的用户标识。

组标识

groupingid 返回发送请求的已认证的用户的组名的列表。

请求查询参数名

queryparm$<name> 头的名称或值。
例如,表达式 queryparm$timezone='EST' 测试请求以了解该请求是否包含名为 timezone 并且值为 EST 的 HTTP 查询参数。要测试查询参数是否存在,请使用下列其中一种格式:
queryparm$timezone IS NOT NULL 
queryparm$timezone IS NULL

请求头名称

header$<name> 头的名称或值。
例如,表达式 header$Host='localhost' 会测试请求以了解它是否包含值为 localhost 的 HTTP 主机头。要测试主机头是否存在,请使用下列其中一个表达式:
header$Host IS NOT NULL 
header$Host IS NULL

Cookie 头名称

cookie$<name> cookie 名称。
例如,表达式 cookie$My_Cookie_Name='My_Cookie_Value' 会测试请求,以了解它是否包含名为 My_Cookie_Name 并且值为 My_Cookie_Value 的 cookie。要测试特定 cookie 是否存在,请使用下列其中一个表达式:
cookie$MyCookieName IS NOT NULL 
cookie$MyCookieName IS NULL

HTTP 方法

HTTPMethod 请求的 HTTP 方法。可能的值包括 POST、GET、PUT 和 DELETE。

客户机主机

clienthost 标准客户机主机名。此值为因特网协议 (IP) 命令主机名。此操作数不支持 >、>=、< 和 <= 之类的数字运算符。

客户机 IPV4

clientipv4 客户机的 IP 地址,使用因特网协议版本 4(IPv4)点分四段地址类型 n.n.n.n

客户机 IPV6

clientipv6 因特网协议版本 6(IPv6)128 位地址类型 x:x:x:x:x:x:x:x,符合客户机的 Request for Comments 1924(RFC 1924)。

服务器主机

serverhost 服务器的标准主机名。此操作数不支持 >、>=、< 和 <= 之类的数字运算符。

服务器 IPV4

serveripv4 服务器的 IP 地址,使用 IPv4 点分四段地址类型 n.n.n.n

服务器 IPV6

serveripv6 IPv6 128 位地址类型 x:x:x:x:x:x:x:x,遵循服务器的 RFC 1924 协议。

端口

port 接收到请求的侦听端口。

协议

protocol 传送请求的通信协议。当前支持的协议包括 HTTP、HTTPS、SOAP 和 SOAPS。

时间

time

用于定义必须处理特定请求的当日的日期和时间。两个可选字段是 StartTimeEndTime。如果在该已定义窗口外接收到请求,那么不会处理该请求。

“开始时间和结束时间”字段都必须使用以下格式:dayOfWeek/dayOfMonth/month/year::hour:minute:second

例如,2007 年 4 月 11 日下午 1:03:45 指定为:

Thu/11/Apr/2007::13:03:45

任何字段都可使用值为 * 的通配符。

例如,每个月的第一天指定为 */1

dayofWeek 值为 Sun、Mon、Tue、Wed、Thu、Fri、Sat,而 dayOfMonth 值的范围是 1 到 31。

month 值是表示 12 个月的非数字值:Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov 和 Dec。

year 值由表示年份的 4 位数字组成。例如,2007。

hour 值是以 24 小时制表示的当天小时。例如,8am 表示为 ::8。minutesecond 是范围在 0 到 59 之间的整数。

正斜杠 (/) 用于分隔 date 参数、双冒号 (::) 用于分隔 hour 参数以及冒号 (:) 用于分隔 timeOfDay 参数。使用了 time 操作数的整个规则的布尔结果确定要执行的路由操作。

百分比

percentage$<val> 百分比操作数对时间的固定百分比求值为 true

例如,percentage$50 对时间的平均值 50% 求值为 true

Ramp up

rampup$<startTime>$<completionTime>

  

rampup 操作数对时间的可变百分比求值为 true。它在 <startTime> 之前一直求值为 false,在 <completionTime> 之后一直求值为 true。从 <startTime><completionTime> 的时间内,它对线性增长的百分比求值为 true

<startTime><completionTime> 的格式为 day/month/year::hour:min:sec

其中 day 表示月份中的日期,month 表示12 个月(Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov 和 Dec)中的一个月,year 是用 4 位数字表示的年份,hour 是用 2 位数字表示的 24 小时制的小时,minsec 分别是用 2 位数字值表示的分钟和秒。

例如,

rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 开始在 2007 年 1 月 1 日上午 8 点偶然求值为 true,并且在同一天的下午 5 点 ramp up 完成时一直求值为 true

运算符

根据选择的运算符,为要创建的子表达式输入值。所有运算符都求值为布尔值。运算符不区分大小写:AND 等同于 AnD

表 3. 跟踪规范运算符
运算符 描述
忽略大小写等于 (EQUALSIGNORECASE) 忽略大小写等于运算符。将会忽略字符串的大小写。'ABC' EQUALSIGNORECASE 'abc' 为 true。('ABC' = 'abc') 为 false。
不等于 (< >) “不等于”运算符表示操作数值与输入的值不相等。
包含 (IN)
  • 当左边的字符串与右边列示的字符串完全匹配(区分大小写)时,string IN list of strings 求值为 true。例如:
    • ’adrian’ in ('keith','eric','kalyan','david', 'adrian and etc') 为 false。
    • 'adrian' in ('tom','adrian')为 true。
    • ’adrian’ in ('Tom','Adrian')为 false。
  • integer IN list of integers
    • 1 in (1,2,3,4,5) 为 true。
    • 6 in (1,2,3,4,5)为 false。
模式匹配 (LIKE)

表示针对字符串操作数值的模式匹配。在模式匹配的预期开始位置,值必须包含通配符 (%)。

例如,表达式:
host LIKE %blanca
匹配单词 blanca 以及任何其他以 blanca 结尾的词,而表达式:
host LIKE blanca%
匹配单词 blanca 以及任何其他以 blanca 开头的表达式。表达式:
host LIKE %blanca%
匹配单词 blanca 和内嵌有标记 blanca 的任何单词。
忽略大小写模式匹配 (LIKEIGNORECASE) 此运算符表示针对字符串操作数值的模式匹配。将会忽略字符串的大小写。
不为 Null (IS NOT NULL) 查询验证结果表明所请求的参数存在。
连接 (+) 此运算符将 'abc'+'def' 求值为 'abcdef'
模式匹配包含 (LIKEIN) likein 左边的字符串与一个或多个字符串 (stringN) 匹配时,此运算符表示 string likein (string1, string2, string3,...) 求值为 true。
为 Null (IS NULL) 查询验证结果表明所请求的参数不存在。操作数测试值为 NULL
等于 ( = ) “等于”运算符表示以区分大小写方式进行匹配。
大于 (>) 求值为标准逻辑结果。
大于或等于 (>=) 求值为标准逻辑结果。
小于 (<) 求值为标准逻辑结果。
小于或等于 (<=) 求值为标准逻辑结果。
Between (BETWEEN) AND 配合使用,用于选择一组值,包括第一个值(下限值)和最后一个值(上限值)。这两个运算符可以共同对数字和日期值执行运算。

根据所选运算符的不同,输入要创建的子表达式的值。

生成子表达式

根据已指定的操作数、运算符和值,生成子表达式。

追加

单击以追加至条件面板上的框。



文件名:uwve_tracerulebuilder.html