# Tvůrce výrazů pravidel HTTP

Pomocí tvůrce podvýrazů je možné sestavovat z podvýrazů podmínky komplexních pravidel pomocí operátorů AND, OR, NOT a seskupování do závorek. Když změny použijete, nástroj pro tvorbu pravidel ověří pravidlo a upozorní vás na nesoulad mezi kulatými závorkami a nepodporovanými logickými operátory.

Chcete-li zobrazit tuto stránku administrativní konzoly, klepněte na volbu Servery > Typy serverů > Směrovače ODR > ODR > Vlastnosti směrovače ODR > Pravidla protokolu HTTP pro zásady směrování > Přidat > Tvůrce podvýrazů.

K úpravě pravidel v nástroji pro tvorbu pravidel jsou zapotřebí oprávnění k administraci.

## Vybrat operand

### Operandy zásad služeb a směrování

V závislosti na vybraném protokolu se zobrazí různé operandy. Následující tabulka zahrnuje názvy operandů zobrazené v konzole, skutečný operand, jak bude zobrazen ve výrazu, platné protokoly pro jednotlivé operandy a popis jednotlivých operandů.

Tabulka 1. Operandy
Proměnná požadavku | Platné protokoly | Popis
--- | --- | ---
`virtualhost` | HTTP SOAP | Cíl virtuálního hostitele požadavku použitý ke konfiguraci webových aplikací pro určitý název hostitele.
`virtualport` | HTTP | Cíl virtuálního portu požadavku použitý ke konfiguraci webových aplikací pro určitý port.
`uri` | HTTP | Identifikátor URI (Uniform Resource Identifier). Slouží k získání cesty požadavku. Pokud adresa URL byla "http://host:port/path?p1=v1", pak cesta je "path".
`Jméno uživatele` |  | Vrátí ID pro ověřeného uživatele, který odeslal požadavek.
`ID skupin` |  | Vrátí seznam názvů skupin pro ověřeného uživatele, který odeslal požadavek.
`Vyžádat název parametru dotazu` |  | Název a hodnota záhlaví. Například výraz `queryparm$timezone='EST'` testuje, zda požadavek obsahuje název parametru dotazu HTTP nazvaný `timezone` s hodnotou `EST`. Chcete-li otestovat přítomnost či nepřítomnost parametru dotazu, použijte jeden z následujících způsobů:
    queryparm$timezone IS NOT NULL
    queryparm$timezone IS NULL
`Název záhlaví požadavku` |  | Název a hodnota záhlaví. Například výraz `header$Host='localhost'` testuje, zda požadavek obsahuje záhlaví hostitele HTTP s hodnotou `localhost`. Chcete-li otestovat přítomnost či nepřítomnost záhlaví hostitele, použijte jeden z těchto výrazů:
    header$Host IS NOT NULL
    header$Host IS NULL
`Název záhlaví souboru cookie` |  | Název souboru cookie. Například výraz `cookie$My_Cookie_Name='My_Cookie_Value'` testuje, zda požadavek obsahuje soubor cookie nazvaný `My_Cookie_Name` s hodnotou `My_Cookie_Value`. Chcete-li otestovat přítomnost či nepřítomnost konkrétního souboru cookie, použijte jeden z těchto výrazů:
    cookie$MyCookieName IS NOT NULL
    cookie$MyCookieName IS NULL
`HTTPMethod` | HTTP SOAP | Metoda HTTP pro požadavek. Možné hodnoty jsou POST, GET, PUT a DELETE.
`clienthost` | HTTP SOAP IIOP SIP | Úplný název hostitele klienta. Jedná se o hodnotu názvu hostitele příkazů protokolu IP (Internet Protocol). Tento operand nepodporuje číselné operátory, jako jsou `>, >=, <, <=`.
`clientipv4` | HTTP SOAP SIP | Adresa IP počítače klienta s použitím adresy protokolu IPv4 (Internet Protocol verze 4) čtyřmístného typu odděleného tečkami `n.n.n.n`.
`clientipv6` | HTTP SOAP SIP | Adresa IPv6 (Internet Protocol verze 6) 128bitového typu `x:x:x:x:x:x:x:x` následující po dokumentu RFC 1924 (Request for Comments 1924) počítače klienta.
`serverhost` | HTTP SOAP IIOP SIP | Úplný název hostitele serveru. Tento operand nepodporuje číselné operátory, jako jsou `>, >=, <, <=`.
`serveripv4` | HTTP SOAP SIP | Adresa IP počítače serveru s použitím adresy protokolu IPv4 čtyřmístného typu odděleného tečkami `n.n.n.n`.
`serveripv6` | HTTP SOAP SIP | Adresa IPv6 128bitového typu `x:x:x:x:x:x:x:x` následující po dokumentu RFC 1924 počítače serveru.
`port` | HTTP SOAP IIOP SIP | Port naslouchání, na kterém byl přijat požadavek.
`protocol` | HTTP SOAP | Komunikační protokol, který přenáší požadavek. V současné době jsou podporované protokoly HTTP, HTTPS, SOAP a SOAPS.
`virtualportal` | HTTP SOAP | Virtuální portály jsou vytvářeny na serveru WebSphere® Portal Server a funkce Intelligent Management podporuje tento operand pro lepší integraci se serverem WebSphere Portal Server. Virtuální portál je adresa URL požadavku bez kontextového kořenového adresáře pro webový modul aplikace WebSphere Portal. Pokud daný požadavek odpovídá definovanému virtuálnímu portálu, provede se akce směrování definovaná pro toto pravidlo.
`time` | HTTP SOAP IIOP | Tento operand je používá k definování data a času, kdy musí být daný požadavek splněn. Dvě nepovinná pole jsou Čas zahájení a Čas ukončení. Pokud je požadavek přijat mimo toto definované časové okno, nebude zpracován. Pole Čas zahájení a Čas ukončení mají následující formát: `den_v_týdnu/den_v_měsíci/měsíc/rok::hodina:minuta:sekunda`. Například čtvrtek 11. dubna roku 2007 ve 13:03:45 bude uveden takto: Thu/11/Apr/2007::13:03:45 V libovolném poli lze použít zástupný znak s hodnotou *. Například 1. den každého měsíce je určen jako */1. Hodnota pro den_v_týdnu jsou Sun, Mon, Tue, Wed, Thu, Fri, Sat a pro den_v_měsíci 1-31. Hodnota pole měsíc je nečíselná hodnota představující dvanáct měsíců: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec. Hodnota pole rok je tvořena čtyřmi číslicemi daného roku. Například 2007. Hodnota pole hodina je hodina dne na 24hodinové časomíře. Například 8 hodin ráno představuje hodnota ::8. Minuta a sekunda jsou celá čísla v rozsahu 0-59. Dopředné lomítko (/) se používá k oddělení parametrů data, dvojitá dvojtečka (::) k oddělení hodnot data a času a dvojtečka (:) k oddělení parametrů času. Všimněte si, že akci směrování, která se provede, určuje logický výsledek celého pravidla, v němž se používá operand time.
`percentage$<val>` | HTTP SOAP IIOP SIP | Operand percentage se vyhodnotí jako `true` v pevně určené procentní části případů. Například `percentage$50` se vyhodnotí jako `true` v průměru v 50 % případů.
`rampup$<startTime>$<completionTime>` | HTTP SOAP IIOP SIP | Operand rampup se vyhodnotí jako `true` v proměnné procentní části případů. Vždy se vyhodnotí jako `false` před časem zahájení `<startTime>` a jako `true` po čase dokončení `<completionTime>`. Jak plyne čas od času zahájení `<startTime>` k času dokončení `<completionTime>`, vyhodnocuje se jako `true` s lineárně rostoucí pravděpodobností. Formát času zahájení `<startTime>` a času dokončení `<completionTime>` je `den/měsíc/rok::hodina:minuta:sekunda`. Kde den je den v měsíci, měsíc je jeden z dvanácti měsíců: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, rok je čtyřciferný rok, hodina je dvouciferná hodina na 24hodinové časomíře a minuta a sekunda jsou dvouciferné hodnoty minut a sekund. Příklad: `rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00` začíná občasným vyhodnocením jako `true` v 8 hodin ráno 1. ledna 2007 a vždy se vyhodnotí jako `true` od času dokončení náběhu v 5 hodin odpoledne téhož dne.

## Operátor

- Je rovno, ignorovat velká/malá písmena (EQUALSIGNORECASE): Identický s 'Řetězec = Řetězec' s tím rozdílem, že je ignorována velikost písmen v řetězcích. Takže 'ABC' `EQUALSIGNORECASE` 'abc' se vyhodnocuje na true. ('ABC' = 'abc') se vyhodnocuje na false.
- Nerovná se ( <> ): Operátor nerovnosti vyjadřuje, že hodnota operandu není rovna zadané hodnotě.
- V (IN): Tento operátor vyjadřuje operand s více hodnotami v jediném výrazu. Pokud například chcete pro operand s názvem `port` vyjádřit, že hodnotou portu může být kterákoli (nebo všechny) z hodnot `9080`, `9090` a `9091`, fragment výrazu je `port IN (9080,9090,9091)`. Způsob vyjádření hodnot v závorkách závisí na datovém typu portu. Pokud je port celé číslo, správnou syntaxí jsou hodnoty bez apostrofů. Pokud je port řetězec, správná syntaxe je `port IN (‘9080’,‘9090’,‘9091’)`.
- Je jako (LIKE): Tento operátor vyjadřuje porovnání vzorků u hodnot řetězcových operandů. Hodnota musí obsahovat zástupný znak procento (%) na pozici, kde začíná porovnání vzorků. Například výraz `host LIKE %blanca` odpovídá slovu blanca nebo jakémukoli jinému slovu, které končí řetězcem blanca, zatímco výraz `host LIKE blanca%` odpovídá slovu blanca nebo jakémukoli jinému slovu, které začíná řetězcem blanca, a výraz `host LIKE %blanca%` odpovídá slovu blanca nebo jakémukoli jinému slovu, které obsahuje řetězec blanca.
- Je jako, ignorovat velká/malá písmena (LIKEIGNORECASE): Identický s 'řetězec like řetězec' s tím rozdílem, že je ignorována velikost písmen v řetězcích.
- Není null (IS NOT NULL): Tento operátor vyjadřuje, že ověření dotazu ukazuje existenci požadovaného parametru.
- Zřetězit (+): Tento operátor vyjadřuje spojení dvou znakových řetězců: 'abc' + 'def' = 'abcdef'.
- Jako v (LIKEIN): Tento operátor vyjadřuje, že řetězec likein (řetězec1, řetězec2, řetězec3 atd.) se vyhodnocuje na true, pokud řetězec nalevo od operátoru "likein" odpovídá minimálně jednomu z řetězců (řetězecN).
- Je null (IS NULL): Tento operátor vyjadřuje, že ověření dotazu ukazuje neexistenci požadovaného parametru.
- Je rovno ( = ): Operátor rovnosti vyjadřuje shodu včetně velikosti písmen.

## Hodnota

V závislosti na vámi zvoleném operátoru zadejte hodnotu podvýrazu, který jste se rozhodli vytvořit.

## Generovat podvýraz

Generovat podvýraz jako výsledek vámi zadaného operandu, operátoru a hodnot.

## Připojit

Klepnutím připojíte do rámečku na panelu pravidel.

Související informace:
Pravidla protokolu HTTP pro zásady směrování

Název souboru: http_rulebuilder_detail.html