Компоновщик выражений правил HTTP

Воспользуйтесь компоновщиком подвыражений для создания сложных условий правил из подвыражений с помощью AND, OR, NOT и скобочной группировки. Компоновщик правил проверяет правило при применении изменений и предупреждает о наличии несоответствующих скобок и неподдерживаемых логических операторов.

Для просмотра данной страницы административной консоли выберите Серверы > Маршрутизаторы нагрузки > имя-odr> Свойства маршрутизатора нагрузки HTTP > Правила HTTP стратегии маршрутизации > Добавить > Компоновщик подвыражений.

Для того чтобы изменить правила с помощью компоновщика правил, необходимо обладать правами доступа администратора.

Выбор операнда

Операнды маршрутизации и стратегии обслуживания

В зависимости от выбранного протокола, отображаются разные операнды. В приведенной ниже таблице представлены имена операндов, отображаемые в консоли, фактический операнд, употребляемый в выражении, допустимые протоколы для каждого операнда и описание каждого операнда.

Таблица 1. Операнды
Переменная запроса Допустимые протоколы Описание

application

IIOP Имя приложения J2EE, в котором содержится EJB.
clienthost

HTTP

SOAP

IIOP

SIP

Полное имя хоста клиента. Это значение имени хоста в IP-команде. Этот операнд не поддерживает числовые операторы, такие как >, >=, <, <=.

clientport

IIOP Имя порта клиента.
clientipv4

HTTP

SOAP

SIP

IP-адрес компьютера клиента, использующего тип адреса IPv4 в виде четырех чисел, разделенных точками, - n.n.n.n.
clientipv6

HTTP

SOAP

SIP

28-битовый тип адреса IPv6 в формате x:x:x:x:x:x:x:x, согласно RFC 1924 компьютера клиента.
Заголовок Contact

SIP

Поле заголовка Contact (Контакт).

URI контакта

SIP

URI поля заголовка Contact (Контакт).

cookie$<имя>

HTTP

SOAP

Имя cookie. Например, выражение cookie$My_Cookie_Name='My_Cookie_Value' проверяет, содержится ли в запросе cookie с именем My_Cookie_Name и значением My_Cookie_Value. Для проверки на предмет отсутствия или наличия определенной записи cookie используется одно из следующих выражений:
cookie$MyCookieName IS NOT NULL 
cookie$MyCookieName IS NULL

ejbmodule

IIOP Имя модуля EJB.

ejbname

IIOP Имя EJB.

ejbmethod

IIOP Имя метода в EJB.
Заголовок From

SIP

Поле заголовка From (Отправитель).

Отображаемое имя заголовка From

SIP

Отображаемое имя в поле заголовка From (Отправитель).

С URI

SIP

URI поля заголовка From (Отправитель).

От хоста URI

SIP

Хост в поле заголовка From (Отправитель).

Из порта URI

SIP

Порт в URI поля заголовка From (Отправитель).

От пользователя URI

SIP

Пользователь в поле заголовка From (Отправитель).

header $<имя>

HTTP

SOAP

SIP

Имя и значение заголовка. Например, выражение header$Host='localhost' проверяет, содержится ли в запросе заголовок хоста HTTP со значением localhost. Для проверки на предмет отсутствия или наличия заголовка хоста используется одно из следующих выражений:
header$Host IS NOT NULL 
header$Host IS NULL
HTTPMethod

HTTP

SOAP

Метод HTTP для запроса. Возможные значения: POST, GET, PUT и DELETE.
MIMEType

HTTP

SOAP

Тип MIME запроса.
operation SOAP Имя операции веб-службы.
percentage$<значение>

HTTP

SOAP

IIOP

SIP

Операнд percentage обрабатывается как true, фиксированное процентное значение времени. Например, percentage$50 соответствует true в среднем 50% времени.
port

HTTP

SOAP

IIOP

SIP

Порт приема, на который был получен запрос.
protocol

HTTP

SOAP

Протокол связи, передающий запрос. В настоящее время поддерживаются протоколы: HTTP, HTTPS, SOAP и SOAPS.
queryparm$<имя>

HTTP

SOAP

Имя и значение заголовка. Например, выражение queryparm$timezone='EST' проверяет, содержится ли в запросе параметр запроса HTTP с именем timezone и значением EST. Для проверки на предмет отсутствия или наличия параметра запроса используется один из следующих форматов:
queryparm$timezone IS NOT NULL 
queryparm$timezone IS NULL
rampup$<startTime>$<completionTime>

HTTP

SOAP

IIOP

SIP

Операнд rampup обрабатывается как true, переменное процентное значение времени. Он всегда оценивается как false до времени начала -<startTime> и как true после времени окончания -<completionTime>. В течение промежутка времени от <startTime> до <completionTime>, этот операнд обрабатывается как true, линейно возрастающее процентное значение.

Формат значений времени начала и времени окончания (<startTime> и <completionTime>): день/месяц/год::час:мин:сек.

где день соответствует числу месяца, месяц - одному из 12 месяцев: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, год - год в 4-значном формате, час - значение часа в 2-значном 24-часовом формате, мин и сек - 2-значные значения минут и секунд, соответственно.

Например:

rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 начинает периодически обрабатываться как true с 8 ч утра 1 января 2007 г. и всегда оценивается как true до окончания заданного периода, т.е. до 5 ч вечера того же дня.
Транспорт запроса

SIP

Транспорт запроса.

Request URI

SIP

URI запроса.

Запрос хоста URI

SIP

Хост в URI запроса.

Порт URI запроса

SIP

Порт в URI запроса.

Пользователь URI запроса

SIP

Пользователь в URI запроса.

Схема заголовка From

SIP

Схема поля заголовка From (Отправитель).

Схема заголовка To

SIP

Схема поля заголовка To (Получатель).

Схема URI

SIP

Схема URI.

serverhost

HTTP

SOAP

IIOP

SIP

Полное имя хоста сервера. Этот операнд не поддерживает числовые операторы, такие как >, >=, <, <=.
serveripv4

HTTP

SOAP

SIP

IP-адрес компьютера сервера, использующего тип адреса IPv4 в виде четырех чисел, разделенных точками - n.n.n.n.
serveripv6

HTTP

SOAP

SIP

28-битовый тип адреса IPv6 в формате x:x:x:x:x:x:x:x, согласно RFC 1924 компьютера сервера.
service

SOAP

Имя веб-службы.
Метод SIP

SIP

Метод для запроса. Возможные значения: INVITE, TRYING, RINGING, ACK, OK и BYE. Если сообщение не является запросом, этот операнд возвращает нулевое значение.

Код ответа

SIP

Код ответа. Если сообщение не является ответом, этот операнд возвращает значение -1.

time

HTTP

SOAP

IIOP

Этот операнд используется для определения даты и времени суток, когда необходимо удовлетворить данный запрос. Два необязательных поля - это StartTime и EndTime (Время начала и Время окончания). Если запрос получен вне указанного временного промежутка, он не будет обрабатываться.

Формат заполнения полей Время начала и Время окончания следующий: день-недели/число/месяц/год::час:мин:сек.

Например, четверг, 11 апреля 2007 года, 1:03:45 дня обозначается так:

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

В любом поле допускается использование * в качестве символа подстановки. Например, 1-е число каждого месяца можно обозначить как */1.

Значениями для дня-недели являются: Sun, Mon, Tue, Wed, Thu, Fri, Sat. Значения числа задаются в диапазоне от 1 до 31.

Значение месяца является нечисловым и представляет собой один из 12 месяцев: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.

Значение года следует указывать в 4-значном формате. Например, 2007.

Значение часа следует указывать в 24-часовом формате времени. Например, 8 ч утра обозначается как ::8. Минуты и секунды представляют собой целые значения в диапазоне от 0 до 59.

Символ косой черты (/) используется для разделения параметров даты, два двоеточия (::) - для разделения значений даты и времени, а двоеточием (:) отделяются параметры времени суток. Обратите внимание на то, что это булевский результат правила в целом, в котором используется операнд time, определяющий выполняемое действие маршрутизации.

На хост клиента

SIP

Хост клиента в поле заголовка To (Получатель).

Заголовок To

SIP

Поле заголовка To.

Отображаемое имя заголовка To

SIP

Отображаемое имя в поле заголовка To (Получатель).

На URI

SIP

URI поля заголовка To (Получатель).

Хосту URI

SIP

Порт в URI поля заголовка To (Получатель).

Пользователю URI

SIP

Пользователь в поле заголовка To (Получатель).

virtual host

HTTP

SOAP

Виртуальные порталы создаются в WebSphere® Portal Server, и WebSphere Extended Deployment поддерживает этот операнд для оптимальной интеграции с WebSphere Portal Server. Виртуальный порт - это URL запроса минус корневой контекст веб-модуля приложения WebSphere Portal. Если данный запрос соответствует заданному виртуальному порталу, выполняется действие маршрутизации, определенное для этого правила.
xpathexpr

SOAP

Строковое выражение XPath содержит обязательное поле, которое используется для ввода выражения XPath, а также необязательное поле для определения локального(-ых) пространства(пространств) имен. Если все пространства имен, содержащиеся в выражении XPath, - стандартные, второе поле может быть необязательным. Если существует несколько локальных пространств имен, их необходимо указать через запятую (,). Пример xpathexpr с определением одного локального пространства имен:
xpathexpr$/soap:Envelope/soap: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

В этом выражении выражением XPath является: /soap:Envelope/soap:Body/n:getTimeZone/n:clientId. В нем указано локальное пространство имен n. Поэтому второе поле в xpathexpr имеет вид n \\=http://test.classify.ws.ibm.com. Символ доллара ($) используется для обозначения начала определения поля. Двойные обратные косые черты в этом примере представляют собой escape-последовательность. Первый знак равенства (=) отделен escape-символом, поскольку является частью определения локального пространства имен, тогда как второй знак равенства (=) - это оператор в выражении классификации, который не следует отделять escape-символом.

Ниже приводится пример выражения xpathexpr с двумя локальными пространствами имен:

xpathexpr$/soap:Envelope/soap: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:

Таблица 1. Пространства имен
Пространство имен 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/
Оператор
  • = Оператор равенства означает совпадение с учетом регистра.
  • <> Оператор отсутствия равенства означает, что значение операнда не равно указанному вами значению.
  • > Оператор "больше" используется с числами.
  • >= Оператор "больше или равно" используется с числами.
  • < Оператор "меньше" используется с числами.
  • <= Оператор "меньше или равно" используется с числами.
  • AND: xx AND yy означает совпадения, содержащие и xx, и yy.
  • BETWEEN: Этот оператор используется с оператором AND для выбора диапазона значений, включая первое, или наименьшее, значение и последнее, или наибольшее, значение. Совместно, они применяются к цифрам и датам.
  • EXISTS: Этот булевский оператор выполняет проверку операнда или результата составного подвыражения, например, во время проверки на предмет наличия определенных атрибутов элемента заголовка HTTP.
  • IN: Этот оператор означает операнд с несколькими значениями в одном выражении. Например, если, для операнда port нужно выразить, что значение порта может быть любым значениями или всеми значениями из списка 9080, 9090, 9091, фрагмент выражения будет иметь вид port IN (9080,9090,9091). Вид значений в скобках зависит от типа данных номера порта. Если номер порта является целым числом, то согласно правилам синтаксиса значения должны быть указаны без кавычек. Если номер порта - это строка, применяется синтаксис port IN (‘9080’,‘9090’,‘9091’).
  • IS NULL: Этот оператор означает, что согласно проверке запроса запрашиваемый параметр не существует.
  • IS NOT NULL: Этот оператор означает, что проверка запроса подтвердила существование запрашиваемого параметра.
  • LIKE: Этот оператор означает совпадение шаблонов для значений строкового операнда. Это значение должно содержать в себе знак процента (%) в качестве символа подстановки в том расположении, где начинается совпадение шаблонов. Например, выражение host LIKE %blanca соответствует слову blanca или любому другому слову, которое заканчивается последовательностью символов blanca, а выражение host LIKE blanca% соответствует слову blanca или любому другому слову, которое начинается с blanca, а выражение host LIKE %blanca% соответствует слову blanca или любому слову, внутри которого есть последовательность символов blanca.
  • NOT: В выражении NOT xx этот оператор означает совпадения, не содержащие в себе xx.
  • OR: В выражении xx OR yy этот оператор означает совпадения, содержащие в себе либо xx, либо yy.
Значение

В зависимости от выбранного оператора, введите значение для подвыражения, которое вы собираетесь создать.

Генерировать подвыражение

Генерирует подвыражение как результат операнда, оператора и указанных пользователем значений.

Добавить

Щелкните для добавления в поле в панели правил.




WebSphere Virtual Enterprise Information Center (электронная справка)

Связанная информация
Правила HTTP стратегии маршрутизации

описание-компоновщика-правил-http