# Builder sottoespressioni - azione della regola di instradamento HTTP

Utilizzare il builder sottoespressioni per creare condizioni di regole complesse da sottoespressioni utilizzando AND, OR, NOT e il raggruppamento parentetico. Il builder sottoespressioni convalida la regola quando si applicano le modifiche ed avverte se sono presenti parentesi discordanti e operatori logici non supportati.

Per visualizzare questa pagina della console di gestione per gli ODR, fare clic su Server > Tipi di server > Router on demand > ODR > Proprietà router on demand > Regole HTTP della politica di instradamento > Specifica per > Espressione > Builder sottoespressioni.

Per visualizzare la pagina della console di gestione per i cluster ODR, fare clic su Server > Cluster > Cluster router on demand > Cluster ODR > Proprietà router on demand > Regole HTTP della politica di instradamento > Specifica per > Espressione > Builder sottoespressioni.

## Seleziona operando

### Operandi delle politiche di instradamento e di servizio

In base al protocollo selezionato, verranno visualizzati operandi diversi. La seguente tabella comprende i nomi degli operandi così come sono visualizzati nella console, l'operando effettivo come apparirà nell'espressione, i protocolli validi per ciascun operando e la descrizione di ciascun operando.

Tabella 1. Operandi
Variabile richiesta | Protocolli validi | Descrizione
--- | --- | ---
`virtualhost` | HTTP SOAP | Destinazione host virtuale della richiesta, utilizzata per configurare le applicazioni Web su uno specifico nome host.
`virtualport` | HTTP | Destinazione porta virtuale della richiesta, utilizzata per configurare le applicazioni Web su una specifica porta.
`uri` | HTTP | Uniform Resource Identifier. Per ottenere il percorso della richiesta. Se l'URL è "http://host:port/path?p1=v1", il percorso è "path".
`ID utente` |  | Restituisce l'id utente per l'utente autenticato che ha inviato la richiesta.
`ID del Gruppo` |  | Restituisce un elenco di nomi di gruppi per l'utente autenticato che ha inviato la richiesta.
`Nome del parametro della query della richiesta` |  | Il nome ed il valore di un'intestazione. Ad esempio, l'espressione `queryparm$timezone='EST'` verifica una richiesta per vedere se contiene un paramtero di query HTTP denominato `timezone` con un valore `EST`. Per verificare la presenza o l'assenza di un parametro di query, utilizzare uno dei seguenti formati:
    queryparm$timezone IS NOT NULL
    queryparm$timezone IS NULL
`Nome intestazione della richiesta` |  | Il nome ed il valore di un'intestazione. Ad esempio l'espressione `header$Host='localhost'` verifica una richiesta per vedere se contiene un'intestazione host HTTP con il valore `localhost`. Per verificare la presenza o l'assenza dell'intestazione host, utilizzare uno delle seguenti espressioni:
    header$Host IS NOT NULL
    header$Host IS NULL
`Nome intestazione del cookie` |  | Un nome cookie. Ad esempio l'espressione `cookie$Nome_Cookie='Valore_Cookie'` verifica una richiesta per vedere se contiene un cookie denominato `Nome_Cookie` con un valore `Valore_Cookie`. Per verificare la presenza o l'assenza di un determinato cookie, utilizzare una delle seguenti espressioni:
    cookie$MyCookieName IS NOT NULL
    cookie$MyCookieName IS NULL
`HTTPMethod` | HTTP SOAP | Il metodo HTTP per la richiesta. I valori possibili sono POST, GET, PUT e DELETE.
`clienthost` | HTTP SOAP IIOP SIP | Il nome host completo del client. È il valore del nome host del comando del protocollo Internet (IP). Questo operando non supporta operatori numerici come, ad esempio, `>, >=, <, <=`.
`clientipv4` | HTTP SOAP SIP | L'indirizzo IP del computer client che utilizza il tipo di indirizzo separato da 4 punti IPv4 (Internet Protocol version 4), `n.n.n.n`.
`clientipv6` | HTTP SOAP SIP | Il tipo di indirizzo IPv6 (Internet Protocol versione 6) a 128 bit `x:x:x:x:x:x:x:x` successivo alla richiesta di commenti 1924 (RFC 1924) del computer client.
`serverhost` | HTTP SOAP IIOP SIP | Il nome host completo del server. Questo operando non supporta operatori numerici come, ad esempio, `>, >=, <, <=`.
`serveripv4` | HTTP SOAP SIP | L'indirizzo IP del computer server che utilizza il tipo di indirizzo separato da 4 punti IPv4 `n.n.n.n`.
`serveripv6` | HTTP SOAP SIP | Il tipo di indirizzo IPv6 a 128 bit `x:x:x:x:x:x:x:x` che segue l'RFC 1924 del computer server.
`port` | HTTP SOAP IIOP SIP | La porta in ascolto su cui è stata ricevuta la richiesta.
`protocol` | HTTP SOAP | Il protocollo di comunicazione che trasmette la richiesta. I protocolli attualmente supportati sono HTTP, HTTPS, SOAP e SOAPS.
`virtualportal` | HTTP SOAP | I portali virtuali vengono creati in WebSphere® Portal Server e Intelligent Management supporta questo operando per una migliore integrazione con WebSphere Portal Server. Il portale virtuale è l'URL della richiesta meno la root di contesto per il modulo Web dell'applicazione WebSphere Portal. Se una determinata richiesta soddisfa il portale virtuale definito, viene eseguita l'azione di instradamento definita per quella regola.
`time` | HTTP SOAP IIOP | Questo operando viene utilizzato per definire la data e l'ora del giorno in cui è necessario soddisfare una determinata richiesta. Due campi facoltativi sono StartTime ed EndTime. Se una richiesta non viene ricevuta al di fuori di tale finestra definita, non verrà elaborata. I campi Ora di inizio e Ora di fine hanno ciascuno il seguente formato: `giorno_della_settimana/giorno_del_mese/mese/anno::ora:minuti:secondi`. Ad esempio, giovedì 11 Aprile 2007, alle 13:03:45 viene specificato come: Gio/11/Apr/2007::13:03:45 In qualsiasi campo è possibile utilizzare un carattere jolly con il valore *. Ad esempio, il primo giorno di ogni mese viene specificato come */1. I valori giorno_della_settimana sono Lun, Mar, Mer, Gio, Ven, Sab, Dom; i valori di giorno_del_mese sono compresi tra 1 e 31. Il valore mese è un valore non numerico che rappresenta i dodici mesi: Gen, Feb, Mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic. Il valore Anno è composto da quattro cifre dell'anno. Ad esempio, 2007. Il valore ora è l'ora del giorno, utilizzando il formato 24 ore. Ad esempio, 8:00 viene rappresentato come ::8. I campi minuti e secondi sono numeri interi compresi tra 0 e 59. La barra (/) viene utilizzata per separare i parametri della data, i doppi due punti (::) vengono utilizzati per separare i valori della data e dell'ora, mentre i due punti (:) vengono utilizzati per separare i parametri ora del giorno. Si noti che si tratta del risultato booleano dell'intera regola in cui viene utilizzato l'operando time che determina l'azione di instradamento intrapresa.
`percentage$<val>` | HTTP SOAP IIOP SIP | L'operando relativo alla percentuale assume il valore `true`, una percentuale fissa del valore temporale. Ad esempio `percentage$50` assume il valore `true` su un 50% di media del tempo.
`rampup$<startTime>$<completionTime>` | HTTP SOAP IIOP SIP | L'operando relativo al rampup assume il valore `true`, una percentuale variabile del valore temporale. Assume sempre il valore `false` prima di `<startTime>` e diventa `true` dopo `<completionTime>`. Man mano che il tempo passa da `<startTime>` a `<completionTime>`, assume il valore `true`, ovvero una percentuale in aumento lineare. Il formato di `<startTime>` e `<completionTime>` è `giorno/mese/anno::ora:min:sec`. dove giorno è il giorno del mese; mese è uno dei 12 mesi: Gen, Feb, mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic; anno è l'anno di 4 cifre; ora è l'ora di due cifre in un orologio di 24 ore e min e sec sono valori di due cifre rispettivamente per minuti e secondi. Ad esempio, `rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00` inizia ad assumere il valore `true` alle 8 del 1 Gennaio 2007 e diventa sempre `true` fino a raggiungere l'ora di completamento alle 17 dello stesso giorno.

## Operatore

- Uguale, ignora maiuscolo/minuscolo (EQUALSIGNORECASE): Identico a 'String = String', tranne che i caratteri delle stringhe sono ignorati. Quindi, 'ABC' `EQUALSIGNORECASE` 'abc' è calcolato true. ('ABC' = 'abc') è calcolato false.
- Non uguale ( <> ): L'operatore di disuguaglianza esprime che il valore dell'operando non è uguale al valore immesso.
- In (IN): Questo operatore esprime un operando con più valori in una singola espressione. Ad esempio, se per un operando denominato `porta`, si desidera specificare che il valore di porta può essere qualunque/tutti i valori come `9080`, `9090`, `9091`, il frammento dell'espressione è `porta IN (9080,9090,9091)`. Il modo in cui i valori vengono espressi tra parentesi dipende dal tipo di dati della porta. Se la porta è rappresentata da un valore intero, la sintassi corretta è costituita dai valori senza gli apici. Se la porta è una stringa, la sintassi corretta è `porta IN (‘9080’,‘9090’,‘9091’)`.
- Come (LIKE): Questo operatore esprime un pattern che corrisponde ai valori dell'operando di una stringa. Il valore deve contenere il segno percentuale del carattere globale (%) nella posizione in cui inizia la corrispondenza del pattern. Ad esempio, l'espressione `host LIKE %blanca` corrisponde alla parola blanca oppure a qualunque altra parola che termina in blanca, mentre l'espressione `host LIKE blanca%` corrisponde alla parola blanca o a qualunque altra parola che inizia con blanca e l'espressione `host LIKE %blanca%` corrisponde alla parola blanca o a qualunque parola in cui è contenuta la parola blanca.
- Come, ignora maiuscolo/minuscolo (LIKEIGNORECASE): Identico a 'string like string' tranne che i caratteri delle stringhe sono ignorati.
- Non è null (IS NOT NULL): Questo operatore esprime che la convalida di una query mostra che il parametro richiesto esiste.
- Concatena (+): Questo operatore esprime due stringhe di caratteri uniti insieme: 'abc' + 'def' = 'abcdef'.
- Come in (LIKEIN): Questo operatore esprime stringa likein (stringa1, stringa2, stringa3, ecc.) e calcola come true se la stringa a sinistra di "likein" corrisponde a una o più delle stringhe (stringaN)
- È null (IS NULL): Questo operatore esprime che una convalida della query mostra che il parametro richiesto non esiste.
- Uguale ( = ): L'operatore di uguaglianza esprime una corrispondenza sensibile al maiuscolo/minuscolo.

## Valore

A seconda dell'operatore scelto, immettere un valore per la sottoespressione che si desidera creare.

## Builder sottoespressioni

Genera la sottoespressione come risultato dell'operando, dell'operatore dei valori specificati.

## Aggiungi

Aggiunge una sottoespressione ad una nuova regola.

Informazioni correlate:
Regole HTTP della politica di instradamento
Builder espressioni di regole HTTP

Nome file: http_subexpression.html