[AIX Solaris HP-UX Linux Windows][z/OS]

Intelligent Management:HTTP 操作数

使用子表达式实用程序构建器中的 HTTP 操作数,此构建器是一个可选工具,可帮助您通过使用 AND、OR、NOT 和括号分组从子表达式构建复杂的规则条件。

规则

每个工作类都包含一个可选的有序规则列表,对特定请求计算这些规则以确定该请求的策略。每个规则都由一个布尔表达式和一个策略值组成。如果该表达式对于特定请求计算为 true,那么将使用与该规则相关联的策略。

规则的布尔表达式的语法和语义类似于结构化查询语言 (SQL) 表达式的 WHERE 子句。更精确地说,表达式的语法由 Java™ Message Service (JMS) 1.1 规范定义。有关更多信息,请阅读“基于规则的请求分类”。

在 JMS 规范中,标识指的是与请求相关联的各种属性,例如,特定查询参数、cookie 或 HTTP 头。JMS 标识可视为请求变量或操作数。这些操作数可以特定于协议。例如,SOAP 服务名称是一个仅在 SOAP 工作类中有效的操作数。

因为 SOAP 在 HTTP 之上,因此 HTTP 操作数在 SOAP 请求中也有效。JMS 规范使用字面值来指定在与请求变量进行比较时要使用的特定值。例如,对于表达式:
clienthost LIKE '%.ibm.com'
'%.ibm.com' 是字面值,用于与请求的客户机主机名进行比较。此表达式对于所有由 ibm.com® 域中的计算机发出的请求为 true。用单引号将字符串文字括起。不要用单引号将数字文字括起。另外,还可以将括号以及 ANDORNOT 运算符一起使用以设定复合布尔表达式的格式。请参阅 JMS 1.1 规范以获取详细描述。

HTTP 请求操作数

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

客户机主机

clienthost 标准的客户机主机名。这是因特网协议 (IP) 命令主机名的值。此操作数支持诸如 >、>=、<、<= 这样的数字运算符。

客户机 IPV4

clientipv4 使用因特网协议 V4 (IPv4) 点分四组地址类型 n.n.n.n 的客户机的 IP 地址。

客户机 IPV6

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

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

头名称

header$<name> 头名称和值。
例如,表达式 header$Host='localhost' 对请求进行测试,以查看它是否包含值为 localhost 的 HTTP 主机头。要测试是存在还是缺少主机头,请使用下列其中一个表达式:
header$Host IS NOT NULL 
header$Host IS NULL

HTTP 方法

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

MIME 类型

MIMEType 请求的 MIME 类型。

百分比

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

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

端口

端口(port) 接收请求所在的侦听端口。

协议

协议 用于传输请求的通信协议。当前受支持的协议是 HTTP、HTTPS、SOAP 和 SOAPS。

查询参数

queryparm$<name> 头名称和值。
例如,表达式 queryparm$timezone='EST' 对请求进行测试,以查看它是否包含名为 timezone、值为 EST 的 HTTP 查询参数。要测试是存在还是缺少查询参数,请使用下列其中一种形式:
queryparm$timezone IS NOT NULL 
queryparm$timezone IS NULL

Rampup

rampup$<startTime>

  $<completionTime>

rampup 操作数对时间的可变百分比求值为 true。在 <startTime> 之前始终会求值为 false,而在 <completionTime> 之后始终求值为 true。时间从 <startTime> 前进到 <completionTime>,求值为 true,以线型百分比的方式增长。

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

其中 day 表示月份中的日期,month 表示月份(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

URI 的方案

request.uri.scheme

URI 的方案。

服务器主机

serverhost 服务器的标准主机名称。此操作数支持诸如 >、>=、<、<= 这样的数字运算符。

服务器 IPV4

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

服务器 IPV6

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

服务

服务 Web Service 的名称。

时间

time

用于定义必须执行给定请求的日期和时间。两个可选字段是“开始时间”和“结束时间”。如果在所定义的时间范围以外收到请求,那么将不处理该请求。

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

例如,2007 年 4 月 11 日星期四下午 1 点 3 分 45 秒被指定为:

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

dayofWeek 值为 Sun、Mon、Tue、Wed、Thu、Fri 和 Sat,而 dayOfMonth 值的范围介于 1 至 31。

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

year 值由表示某个年份的四个数字组成。例如 2007。

hour 值是一天中的某个小时(以 24 小时制表示)。例如,早上 8 点表示为 ::8。minutesecond 是范围介于 0 至 59 的整数。

注: time 操作数不支持省略号和通配符。

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

URI

uri

统一资源标识

虚拟主机

virtualhost

用于对特定主机名配置 Web 应用程序的请求的虚拟主机目标。

虚拟端口

virtualport

用于对特定端口配置 Web 应用程序的请求的虚拟端口目标。

虚拟门户网站

virtualportal

在 WebSphere® Portal Server 中创建虚拟门户网站,并且 Intelligent Management 支持此操作数以与 WebSphere Portal Server 更好地集成在一起。从请求 URL 中减去 WebSphere Portal 应用程序的 Web 模块的上下文根即可得到虚拟门户网站。如果给定请求与已定义的虚拟门户网站匹配,那么将执行对该规则定义的路由操作。

HTTP 响应操作数

当您使用定制日志文件时,除了表 1 中的操作数外,还可以使用下列操作数:
表 2. HTTP 响应操作数
操作数 语法 描述

响应代码

response.code

通过 HTTP 响应代码(如 404 和 503 等)进行过滤。

响应时间

response.time

在 ODR 中接收请求时与从 ODR 发送响应之间的时间(以毫秒计)。

响应写入错误

response.write.error

将响应写入客户机时,会发生的日志错误。

服务时间

service.time

将请求发送到应用程序服务器时与从应用程序服务器接收到响应时之间的时间(以毫秒计)。

目标服务器

targetserver

显示发送请求的服务器,格式为 WebSphere Application Server。例如,mycell/mynode/myserver

Xpath 表达式

Xpath 表达式的语法是 xpathexpr,并受 HTTP 支持。

XPath 字符串表达式有一个用于包含 XPath 表达式的必需字段和一个用于定义局部名称空间的可选字段。如果 XPath 表达式中包含的所有名称空间都是标准的,那么第二个字段可以是可选的。如果存在多个局部名称空间,那么使用逗号 (,) 分隔各个局部名称空间。

以下示例显示带有一个局部名称空间定义的 xpathexpr:

xpathexpr$/http:Envelope/soap:Body/m:getTimeZone/n:clientId$n\\=http://test2.classify.ws.ibm.com 
  = \\'1000\\' or operation IS NOT NULL

在上一表达式中,XPath 表达式是 /http:Envelope/soap:Body/n:getTimeZone/n:clientId。它包含 n 局部名称空间。因此,xpathexpr 的第二个字段定义为 n\\=http://test.classify.ws.ibm.com。美元符号($)用于表示字段定义的开头。在此示例中,双反斜杠是转义序列。第一个等于号(=)是局部名称空间定义的一部分,因此进行了转义,而第二个等于号(=)是分类表达式中的运算符,不能转义。

以下示例显示带有两个局部名称空间的 xpathexpr:

xpathexpr$/http:Envelope/http:Body/m:getTimeZone/n:clientId$m\\=http://test.classify.ws.ibm.com,n\\
 =http://test2.classify.ws.ibm.com = \\'1000\\' or operation IS NOT NULL
下表显示了 xpathexpr 表达式的标准名称空间:
表 3. 名称空间
名称空间 URL
soap http://schemas.xmlsoap.org/soap/envelope/
soap-env http://schemas.xmlsoap.org/soap/envelope/
soapenc http://schemas.xmlsoap.org/soap/encoding/
soapbind http://schemas.xmlsoap.org/wsdl/soap/
xsd http://www.w3.org/2001/XMLSchema
xsi http://www.w3.org/2001/XMLSchema-instance
xsi http://ws-i.org/schemas/conformanceClaim/
wsdl http://schemas.xmlsoap.org/wsdl/

运算符

Intelligent Management 支持在下表中的规则表达式中使用运算符。因为这些运算符出现在 WHERE 或 HAVING 子句中,所以在 SQL 术语中也将其称为谓词。运算符不区分大小写。

  • 忽略大小写的等于 (EQUALSIGNORECASE): 与 'String = String' 相同,除了会忽略字符串的大小写。因此,'ABC' EQUALSIGNORECASE 'abc' 将求值为 true。('ABC' = 'abc') 求值为 false。
  • 不等于 ( <> ):“不等于”运算符表示操作数的值不等于您输入的值。
  • 属于 (IN):此运算符在单个表达式中使用多个值来表示一个操作数。例如,对于名为 port 的操作数,如果要表示端口值可以是任何值或所有值,例如 908090909091,则表达式片段为 port IN (9080,9090,9091)。括号内值的表示方式取决于 port 的数据类型。如果端口是整数,那么正确的语法是一些不带引号的值。如果 port 为字符串,那么正确的语法是 port IN (‘9080’,‘9090’,‘9091’)
  • 模式匹配 (LIKE):此运算符表示针对字符串操作数值的模式匹配。值必须在模式匹配开始的位置中包含通配符百分号 (%)。例如,表达式 host LIKE %blanca 表示与单词 blanca 或者任何其他以 blanca 结尾的单词匹配;表达式 host LIKE blanca% 表示与单词 blanca 或者任何其他以 blanca 开头的单词匹配;表达式 host LIKE %blanca% 表示与单词 blanca 或者任何嵌入了 blanca 的单词匹配。
  • 忽略大小写的模式匹配 (LIKEIGNORECASE):与 'string like string' 相同,除了会忽略字符串的大小写。
  • 不为 Null (IS NOT NULL):此运算符表示以下情况:对查询的验证显示存在所请求参数。
  • 连接 (+):此运算符表示将两个字符串连接到一起:'abc' + 'def' = 'abcdef'。
  • 模式匹配属于 (LIKEIN):此运算符表示当“likein”左侧的字符串与一个或多个字符串 (stringN) 匹配时,string likein (string1, string2, string3, etc.) 求值为 true。
  • 为 Null (IS NULL):此运算符表示以下情况:对查询的验证显示不存在所请求参数。
  • 等于 ( = ):“等于”运算符表示以区分大小写方式进行匹配。

指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwve_odrhttp
文件名:rwve_odrhttp.html