Quando si effettua una richiesta client HTTP nel supporto Web di CICS®, è necessario aprire una connessione al server prima di inviare la prima richiesta. CICS restituisce un token di sessione che rappresenta la connessione.
Informazioni su questa attività
Quando si apre la connessione al server, è possibile specificare una risorsa URIMAP che contiene le informazioni sul server host e sulla porta per la connessione. È possibile codificare queste informazioni direttamente nel programma applicativo, invece di utilizzare una risorsa URIMAP. Tuttavia, l'utilizzo di una risorsa URIMAP presenta i
seguenti vantaggi:
- Gli amministratori di sistema possono gestire eventuali modifiche all'endpoint della
connessione, quindi non è necessario ricompilare le applicazioni
se cambia l'URL per la richiesta.
- Se si utilizza TLS, è possibile specificare un certificato client TLS o un file di specifica della suite di cifratura nella risorsa URIMAP, in modo che gli amministratori di sistema possano gestire eventuali modifiche a questi certificati e codici.
- È possibile decidere di fare in modo che CICS mantenga aperte
dopo l'uso le connessioni che erano state aperte con la risorsa URIMAP e le collochi in un pool
per essere riutilizzate da un'altra applicazione o da un'altra istanza della stessa applicazione. Il pooling di connessioni è disponibile soltanto quando si specifica una risorsa URIMAP
che ha l'attributo SOCKETCLOSE impostato. Per ulteriori informazioni sui vantaggi in termini di prestazioni del pooling delle connessioni, vedere Pooling delle connessioni per le prestazioni dei client HTTP.
- WEB OPEN URIMAP può utilizzare l'indirizzo IP memorizzato nella cache dell'URIMAP dopo che è stata stabilita la connessione iniziale, per le successive richieste web in uscita che utilizzano lo stesso URIMAP, eliminando così inutili ricerche DNS.
Quando la connessione iniziale all'host viene stabilita con successo, WEB OPEN aggiorna l'URIMAP con l'indirizzo IP risolto. Per le richieste successive WEB OPEN che utilizzano lo stesso URIMAP, viene utilizzato l'indirizzo IP risolto memorizzato nella cache dell'URIMAP. Se una connessione che utilizza l'indirizzo IP memorizzato nella cache fallisce, WEB OPEN esegue una ricerca DNS e aggiorna l'URIMAP con l'indirizzo IP dopo una connessione riuscita. Se si desidera reimpostare o rimuovere l'indirizzo IP memorizzato nella cache dell'URIMAP, disattivare e quindi riattivare l'URIMAP per forzare CICS a eseguire una ricerca DNS. Se si dispone di più URIMAP che fanno riferimento allo stesso HOST, è necessario disattivare e riattivare solo uno degli URIMAP per reimpostare l'indirizzo IP memorizzato nella cache per tutti.
- Allo stesso modo, WEB OPEN URIMAP può utilizzare le informazioni HTTP memorizzate nella cache dell'host. È utile quando si esegue WEB OPEN con le opzioni HTTPVNUM e HTTPRNUM e quando si emette WEB SEND con l'opzione ACTION(EXPECT) o CHUNKING. Le informazioni sulla versione HTTP dell'host che CICS ottiene quando apre la connessione vengono memorizzate nella cache e riutilizzate per le successive richieste in uscita che utilizzano lo stesso URIMAP, riducendo così le richieste HTTP OPTIONS.
- I certificati vengono convalidati una sola volta al momento dell'installazione di URIMAP, anziché a ogni comando WEB OPEN.
- L'uso di un URIMAP consente il pooling delle connessioni in uscita, che riduce l'overhead della creazione di nuove connessioni per ogni WEB OPEN.
Avviare® una connessione con il server emettendo un comando WEB OPEN.
Procedura
- Specificare il nome host del server, la lunghezza del nome host e lo schema da utilizzare ( HTTP o HTTPS ).
Specificare anche il numero di porta dell'host, se non è quello predefinito per lo schema specificato.
È possibile specificare l'opzione URIMAP nel comando WEB OPEN per utilizzare queste informazioni direttamente da una risorsa URIMAP esistente. Il pooling della connessione è abilitato per la connessione quando si specifica l'opzione URIMAP e si nomina una risorsa URIMAP con l'attributo SOCKETCLOSE impostato.
In alternativa, è possibile fornire le informazioni utilizzando le opzioni SCHEME, HOST, HOSTLENGTH e PORTNUMBER. È possibile estrarre questi dettagli da un URL noto, utilizzando il comando WEB PARSE URL, o da una definizione URIMAP esistente, utilizzando il comando WEB EXTRACT URIMAP (ma si noti che l'estrazione di informazioni da una definizione URIMAP non abilita il pooling delle connessioni).
- Se necessario, specificare l'opzione CODEPAGE per cambiare la pagina di codice EBCDIC per questa connessione in qualcosa di diverso dalla pagina di codice predefinita per la regione locale CICS (impostata dal parametro di inizializzazione del sistema LOCALCCSID). Questa pagina potrebbe essere la pagina del codice EBCDIC di un'altra lingua nazionale.
Quando il server restituisce la risposta, se è specificata la conversione CICS converte il corpo della risposta in questa pagina di codice prima di passarla all'applicazione.
- Se si utilizza lo schema HTTPS, specificare le opzioni di sicurezza appropriate:
- Se è necessario fornire un certificato client TLS, specificare l'opzione CERTIFICATE.
Se si specifica l'opzione URIMAP nel comando WEB OPEN, è possibile utilizzare queste informazioni direttamente da una definizione URIMAP esistente.
- Specificare l'opzione URIMAP nel comando WEB OPEN.
6.
6.1 6.2 Se si omette l'opzione CIPHERS e l'opzione URIMAP, ma il TLS è attivo per la connessione, si verifica quanto segue:
- Se MAXTLSLEVEL è inferiore a TLS13, CICS utilizza i cifrari predefiniti a 2 cifre.
- Se MAXTLSLEVEL è uguale a TLS13 o superiore, CICS utilizza un elenco predefinito di cifrari, tratto da defaultciphers.xml file.
6.3 Se si omette l'opzione CIPHERS e l'opzione URIMAP, ma il TLS è attivo per la connessione, CICS utilizza un elenco predefinito di cifrari che vengono presi dal file defaultciphers.xml .
- Se la prima richiesta pianificata prevede azioni che non sono supportate in tutte le versioni del protocollo HTTP e si vuole verificare la versione HTTP del server per confermare il funzionamento delle azioni, specificare una o entrambe le opzioni HTTPVNUM e HTTPRNUM per restituire questa informazione.
Queste informazioni possono essere necessarie se non si conosce già la versione HTTP del server e si desidera eseguire azioni che dipendono dalla versione del protocollo HTTP, ad esempio:
- Scrittura di intestazioni HTTP che richiedono un'azione che potrebbe non essere eseguita correttamente da un server di livello inferiore a HTTP/1.1
- Utilizzo di metodi HTTP che potrebbero essere inadatti per i server di livello inferiore
a HTTP/1.1
- Utilizzo del trasferimento di codifica suddiviso in più parti
- Invio di una sequenza pipeline di richieste
Non è sempre necessario controllare la versione HTTP del server. Consultate le specifiche HTTP a cui state lavorando per vedere se è accettabile tentare l'azione con un server della versione sbagliata. Ad esempio, alcune intestazioni HTTP non adatte potrebbero essere ignorate dal destinatario. Si potrebbe tentare la richiesta senza controllare e gestire qualsiasi risposta di errore dal server.
Non specificate le opzioni HTTPVNUM e HTTPRNUM se non avete bisogno di queste informazioni, perché le prestazioni sono migliori senza queste opzioni.
- Opzionale: Se si vuole far passare la connessione al server attraverso un server proxy, o se si vuole applicare un criterio di sicurezza a un nome host, creare un programma di uscita utente per l'uscita utente XWBOPEN.
Risultati
Se è stata specificata una risorsa URIMAP con l'attributo SOCKETCLOSE impostato, CICS controlla se nel pool è disponibile una connessione inattiva e, in caso affermativo, fornisce la connessione al programma applicativo per il riutilizzo. Se non è disponibile una connessione inattiva o se non è stata specificata una risorsa URIMAP adatta, CICS apre una nuova connessione al server. Il programma applicativo utilizza una nuova connessione o una connessione riutilizzata esattamente nello stesso modo.
CICS restituisce un nuovo token di sessione al programma applicativo per rappresentare l'uso della connessione da parte di questa applicazione.
Operazioni successive
Salvare il token di sessione e utilizzarlo per tutti i comandi successivi relativi a questo utilizzo della connessione.