# Erstellungsprogramm für Unterausdrücke für HTTP-Routing-Regelaktionen

Verwenden Sie das Erstellungsprogramm für Unterausdrücke, um mit AND, OR, NOT und Gruppierungen in Klammern komplexe Regelbedingungen aus Unterausdrücken zu erstellen. Das Erstellungsprogramm für Unterausdrücke validiert die Regeln, wenn Sie die Änderungen anwenden, und gibt Warnungen aus, wenn Klammern nicht korrekt gesetzt sind oder nicht unterstützte logische Operationen verwendet werden.

Klicken Sie zum Anzeigen dieser Seite der Administrationskonsole für ODRs auf Server > Servertypen > On Demand Router > ODR > Eigenschaften für On Demand Router > HTTP-Regeln für Routing-Richtlinie > Angeben nach > Ausdruck > Erstellungsprogramm für Unterausdrücke.

Klicken Sie zum Anzeigen dieser Seite der Administrationskonsole für ODR-Cluster auf Server > Cluster > ODR-Cluster > ODR-Cluster > Eigenschaften für On Demand Router > HTTP-Regeln für Routing-Richtlinie > Angeben nach > Ausdruck > Erstellungsprogramm für Unterausdrücke.

## Operanden auswählen

### Operanden für Routing- und Servicerichtlinien

Je nach ausgewählten Protokoll werden unterschiedliche Operanden angezeigt. Die folgende Tabelle enthält die Operandennamen, wie sie in der Konsole angezeigt werden, den tatsächlichen Operanden, wie er im Ausdruck verwendet wird, die gültigen Protokolle für jeden Operanden und die Beschreibung jedes Operanden.

Tabelle 1. Operanden
Anforderungsvariable | Gültige Protokolle | Beschreibung
--- | --- | ---
`virtualhost` | HTTP SOAP | Das virtuelle Hostziel der Anforderung, das für die Konfiguration von Webanwendungen für einen bestimmten Hostnamen verwendet wird.
`virtualport` | HTTP | Das virtuelle Portziel der Anforderung, das für die Konfiguration von Webanwendungen für einen bestimmten Port verwendet wird.
`uri` | HTTP | Uniform Resource Identifier. Wird verwendet, um den Pfad der Anforderung abzurufen. Wenn der URL beispielsweise "http://host:port/path?p1=v1" ist, ist der Pfad "path".
`Benutzer-ID` |  | Gibt die Benutzer-ID für den authentifizierten Benutzer zurück, der die Anforderung gesendet hat.
`Gruppen-IDs` |  | Gibt eine Liste mit Gruppennamen für den authentifizierten Benutzer zurück, der die Anforderung gesendet hat.
`Name des Anforderungsabfrageparameters` |  | Ein Headername und -wert. Beispielsweise können Sie mit dem Ausdruck `queryparm$timezone='EST'` eine Anforderung daraufhin prüfen, ob sie einen HTTP-Abfrageparameter mit dem Namen `timezone` und dem Wert `EST` enthält. Verwenden Sie eines der folgenden Formate, um festzustellen, ob ein bestimmter Abfrageparameter vorhanden ist oder nicht:
    queryparm$timezone IS NOT NULL
    queryparm$timezone IS NULL
`Name des Anforderungsheaders` |  | Ein Headername und -wert. Mit dem Ausdruck `header$Host='localhost'` wird beispielsweise geprüft, ob eine Anforderung einen HTTP-Host-Header mit dem Wert `localhost` enthält. Verwenden Sie einen der folgenden Ausdrücke, um festzustellen, ob der Host-Header vorhanden ist oder nicht:
    header$Host IS NOT NULL
    header$Host IS NULL
`Name des Cookie-Headers` |  | Ein Cookiename. Der Ausdruck `cookie$My_Cookie_Name='My_Cookie_Value` prüft beispielsweise, ob eine Anforderung ein Cookie mit dem Namen `My_Cookie_Name` und dem Wert `My_Cookie_Value` enthält. Mit den folgenden Ausdrücken können Sie prüfen, ob ein bestimmtes Cookie vorhanden ist bzw. fehlt:
    cookie$MyCookieName IS NOT NULL
    cookie$MyCookieName IS NULL
`HTTPMethod` | HTTP SOAP | Die HTTP-Methode für die Anforderung. Die gültigen Werte sind POST, GET, PUT und DELETE.
`clienthost` | HTTP SOAP IIOP SIP | Der vollständig qualifizierte Name des Clienthosts. Dies ist der Wert für den Hostnamen im IP-Befehl (Internet Protocol). Dieser Operand unterstützt keine numerischen Operatoren wie `>, >=, <, <=`.
`clientipv4` | HTTP SOAP SIP | Die IP-Adresse des Clientcomputers im IPv4-Adressformat (Internet Protocol Version 4): `n.n.n.n`.
`clientipv6` | HTTP SOAP SIP | Die IP-Adresse des Clientcomputers im 128-Bit-IPv6-Adressformat (Internet Protocol Version 6) `x:x:x:x:x:x:x:x` gemäß RFC 1924 (Request for Comments).
`serverhost` | HTTP SOAP IIOP SIP | Der vollständig qualifizierte Hostname des Servers. Dieser Operand unterstützt keine numerischen Operatoren wie `>, >=, <, <=`.
`serveripv4` | HTTP SOAP SIP | Die IP-Adresse des Servercomputers im IPv4-Adressformat `n.n.n.n`.
`serveripv6` | HTTP SOAP SIP | Die IP-Adresse des Servercomputers im 128-Bit-IPv6-Adressformat `x:x:x:x:x:x:x:x` gemäß RFC 1924.
`Port` | HTTP SOAP IIOP SIP | Der Empfangsport, an dem die Anforderung empfangen wurde.
`Protokoll` | HTTP SOAP | Das Kommunikationsprotokoll, mit dem die Anforderung übertragen wird. Die derzeit unterstützten Protokolle sind HTTP, HTTPS, SOAP und SOAPS.
`virtualportal` | HTTP SOAP | Virtuelle Portale werden in WebSphere Portal Server erstellt, und Intelligent Management unterstützt diesen Operanden für eine bessere Integration in WebSphere Portal Server. Das virtuelle Portal ist der Anforderungs-URL ohne das Kontextstammverzeichnis für das Webmodul der WebSphere-Portal-Anwendung. Wenn eine Anforderung dem definierten virtuellen Portal entspricht, wird die für diese Regel definierte Routing-Aktion ausgeführt.
`time` | HTTP SOAP IIOP | Dieser Operand wird verwendet, um das Datum inklusive Tageszeit zu definieren, an dem eine bestimmte Anforderung bearbeitet werden muss. Die beiden Wahlfelder sind "Startzeit" und "Endzeit". Wenn eine Anforderung außerhalb dieses definierten Fensters empfangen wird, wird die Anforderung nicht verarbeitet. Die Felder "Startzeit" und "Endzeit" haben das folgende Format: `Tag_der_Woche/Tag_des_Monats/Monat/Jahr::Stunde:Minute:Sekunde`. Donnerstag, der 11. April des Jahres 2007, 1:03:45 PM wird beispielsweise wie folgt angegeben: Thu/11/Apr/2007::13:03:45 In allen Feldern kann ein Platzhalterzeichen mit dem Stern (*) verwendet werden. Der 1. jedes Monats wird beispielsweise mit */1 angegeben. Die Werte für Tag_der_Woche sind Sun, Mon, Tue, Wed, Thu, Fri, Sat, und die gültigen Werte für Tag_des_Monats sind 1-31. Die gültigen Werte für Monat sind die nicht numerischen Wert, die die zwölf Monate darstellen: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec. Für Jahr muss ein vierstelliger Jahreswert angegeben werden, z. B. 2007. Der Wert für Stunde muss im 24-Stunden-Format angegeben werden. 8 AM wird beispielweise mit ::8 angegeben. Die Werte für Minute und Sekunde sind ganze Zahlen aus dem Bereich 0-59. Der Schrägstrich (/) wird verwendet, um Datumsparameter zu trennen, der doppelte Doppelpunkt (::), um die Datums- und Zeitwerte zu trennen, und der Doppelpunkt (:), um die Uhrzeitparameter zu trennen. Das boolesche Ergebnis der gesamten Regel, in der der Operand Zeit verwendet wird, bestimmt die Routing-Aktion, die ausgeführt wird.
`percentage$<Wert>` | HTTP SOAP IIOP SIP | Der Operand percentage wird mit `true` ausgewertet, einem festen Prozentsatz an Zeit. `percentage$50` wird beispielsweise mit `true` ausgewertet, wenn die Zeit durchschnittlich 50 % beträgt.
`rampup$<Startzeit>$<Endzeit>` | HTTP SOAP IIOP SIP | Der Operand "rampup" wird bei einer variablen Zeit in Prozent mit `true` ausgewertet. Vor der `<Startzeit>` wird er immer mit `false` und nach der `<Endzeit>` immer mit `true` ausgewertet. Je weiter die Zeit von der `<Startzeit>` zur `<Endzeit>` voranschreitet, ist der Operand `true` (ein linear ansteigender Prozentsatz). `<Startzeit>` und `<Endzeit>` haben das Format `Tag/Monat/Jahr::Stunde:Min:Sek`. Tag ist der Tag des Monats, Monat einer der zwölf Monate (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec), Jahr ist die vierstellige Jahresangabe, Stunde die zweistellige Stundenangabe im 24-Stunden-Format, Min und Sek die zweistelligen Werte für Minuten bzw. Sekunden. Beispiel: `rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00` wird ab dem 1. Januar 2007, 8:00 Uhr morgens mit `true` ausgewertet, und ist nach der Endzeit um 17:00 Uhr desselben Tags immer `true`.

## Operator

- Gleich bei Ignorierung der Groß-/Kleinschreibung (EQUALSIGNORECASE): Identisch mit 'String = String' mit Ausnahme dessen, dass die Groß-/Kleinschreibung der Zeichenfolgen ignoriert wird. 'ABC' `EQUALSIGNORECASE` 'abc' wird beispielsweise mit true ausgewertet. ('ABC' = 'abc') wird mit false ausgewertet.
- Nicht gleich ( <> ): Der Nicht-gleich-Operator gibt an, dass der Wert des Operanden ungleich dem eingegebenen Wert ist.
- In (IN): Dieser Operator sucht einen Operanden mit mehreren Werten in einem Ausdruck. Wenn Sie beispielsweise für einen Operanden mit dem Namen `port` ausdrücken möchten, dass der Portwert einem der angegebenen Werte oder allen angegebenen Werten, wie z. B. `9080`, `9090` oder `9091` entsprechen kann, geben Sie das Ausdrucksfragment `port IN (9080,9090,9091)` an. Wie die Werte in den Klammern ausgedrückt werden, richtet sich nach dem Datentyp des Ports. Wenn der Port eine ganze Zahl ist, ist die korrekte Syntax, die Werte ohne Anführungszeichen anzugeben. Ist der Port eine Zeichenfolge, lautet die korrekte Syntax `port IN (‘9080’, ‘9090’, ‘9091’)`.
- Like (LIKE): Dieser Operator drückt eine Mustererkennung für Zeichenfolgeoperanden aus. Der Wert muss das Platzhalterzeichen % (Prozentzeichen) an der Position enthalten, mit der die Mustererkennung beginnen soll. Der Ausdruck `host LIKE %blanca` findet beispielsweise das Wort blanca und alle anderen Wörter, die mit blanca enden, während der Ausdruck `host LIKE blanca%` das Wort blanca und alle anderen Wörter findet, die mit blanca beginnen. Der Ausdruck `host LIKE %blanca%` findet das Wort und alle Wörter, die das Wort blanca enthalten.
- Wie bei Ignorierung der Groß-/Kleinschreibung (LIKEIGNORECASE): Identisch mit 'string like string' mit Ausnahme dessen, dass die Groß-/Kleinschreibung der Zeichenfolgen ignoriert wird.
- Is Not Null (IS NOT NULL): Dieser Operator drückt aus, dass die Validierung der Abfrage ergeben soll, dass der angeforderte Parameter vorhanden ist.
- Verketten (+): Dieser Operator drückt zwei Zeichen aus, die miteinander verknüpft sind: 'abc' + 'def' = 'abcdef'.
- Wie in (LIKEIN): Dieser Operator drückt, dass eine Zeichenfolge gesucht wird, die einer der hinter likein angegebenen Zeichenfolgen entspricht, z. B. string likein (string1, string2, string3, etc.). Wird mit true ausgewertet, wenn die Zeichenfolge (string) links von "likein" einer oder mehreren der Zeichenfolgen rechts von "likein" (stringN) entspricht.
- Ist null (IS NULL): Dieser Operator drückt aus, dass die Validierung der Abfrage ergeben soll, dass der angeforderte Parameter nicht vorhanden ist.
- Gleich ( = ): Der Gleichheitsoperator drückt einen Abgleich aus, bei dem die Groß-/Kleinschreibung berücksichtigt wird.

## Wert

Geben Sie je nach ausgewähltem Operator einen Wert für den Unterausdruck ein, den Sie erstellen möchten.

## Erstellungsprogramm für Unterausdrücke

Generiert den Unterausdruck mit dem Operanden, dem Operator und den Werten, die Sie angegeben haben.

## Anfügen

Fügt den Unterausdruck der neuen Regel hinzu.

Zugehörige Informationen:
HTTP-Regeln für Routing-Richtlinie
Erstellungsprogramm für HTTP-Regelausdrücke

Dateiname: http_subexpression.html