Compressione/Decompressione con l'attività Servizi Web - Richiama servizio

Durante il runtime, l'attività Servizi Web - Richiama servizio invia al servizio Web una richiesta HTTP conforme al protocollo HTTP/HTTPS 1.1. L'attività Richiama servizio supporta la compressione solo con il formato gzip e la decompressione con i formati gzip o deflate.

Nota: l'attività Richiama servizio non supporta il formato di compressione file UNIX comune denominato compress.
Il funzionamento al runtime della compressione/decompressione dell'attività Richiama servizio dipende dalle seguenti condizioni:

L'effetto di tali condizioni sul funzionamento al runtime della compressione/decompressione dell'attività Richiama servizio è descritto di seguito e nelle tabelle riportate nella sezione Funzionamento al runtime della decompressione/decompressione.

Supporto endpoint per la compressione/decompressione

Il dispositivo di integrazione determina se l'endpoint HTTP supporta o meno la compressione quando il dispositivo di integrazione invia la prima richiesta HTTP nel formato compresso all'endpoint HTTP (il servizio Web), se il servizio Web restituisce un codice di errore indicante che il servizio Web non supporta la compressione oppure non supporta il tipo di Content-Encoding specificato, il dispositivo di integrazione reinvia la prima richiesta in formato non compresso e tutte le successive richieste a questo endpoint vengono inviate in formato non compresso. Inoltre, la risposta HTTP inviata dal servizio Web non viene decompressa quando viene ricevuta dal dispositivo di integrazione.

Il supporto endpoint per la compressione/decompressione è rappresentato dalla quarta colonna, con etichetta L'endpoint supporta la compressione? nelle tabelle fornite nella sezione Funzionamento al runtime della decompressione/decompressione.

I valori di Content-Encoding e Accept-Encoding a livello del messaggio

Il valore dell'intestazione Content-Encoding nella richiesta HTTP determina se il corpo della richiesta è compresso o non in uso. Per l'attività Richiama servizio, il dispositivo di integrazione imposta il valore di Content-Encoding su gzip ed invia il corpo della richiesta compresso in formato gzip, come illustrato nella seconda riga della prima tabella, con etichetta Funzionamento della compressione quando si invia una richiesta e nella figura riportata di seguito.

Il valore dell'intestazione Accept-Encoding nella richiesta definisce i tipi di codifica che il client HTTP accetta nella risposta. Per l'attività Richiama servizio, il dispositivo di integrazione imposta Accept-Encoding su gzip,deflate nella richiesta ed il servizio Web invia il corpo della risposta compresso in formato gzip o deflate al dispositivo di integrazione (che funziona come client), come illustrato nella figura riportata di seguito:

I valori delle intestazioni Accept-Encoding e Content-Encoding nella richiesta vengono utilizzati dal dispositivo di integrazione e dal servizio Web per stabilire il funzionamento della compressione/decompressione.

Impostazione compressione/decompressione a livello dell'attività

Per impostazione predefinita, la compressione e la decompressione sono attivate al livello dell'attività per l'attività Richiama servizio. È possibile disattivare la compressione/decompressione al livello dell'attività annullando la selezione della casella di spunta Utilizza compressione/decompressione. La casella di spunta Utilizza compressione/decompressione è disponibile nell'attività Configura dell'attività. La seconda colonna, con etichetta Casella di spunta Utilizza compressione/decompressione nelle tabelle fornite nella sezione Funzionamento al runtime della decompressione/decompressione, rappresenta l'impostazione della casella di spunta Utilizza compressione/decompressione.

Nota relativa ad elementi obsoleti: la casella di spunta Utilizza compressione/decompressione verrà resa obsoleta in un release successivo. Utilizzare i parametri HTTP Content-Encoding e Accept-Encoding nella richiesta HTTP per specificare in che modo decomprimere il corpo della richiesta HTTP e comprimere il corpo della risposta HTTP.

Funzionamento al runtime della decompressione/decompressione

La prima tabella fornita nella sezione Funzionamento della compressione quando si invia una richiesta descrive il funzionamento al runtime della compressione quando il dispositivo di integrazione invia una richiesta HTTP al servizio Web.

La seconda tabella fornita nella sezione Valore intestazione Accept-Encoding trasmesso alla richiesta descrive il valore dell'intestazione Accept-Encoding trasmessa nella richiesta HTTP.

La terza tabella fornita nella sezione Funzionamento della decompressione quando si riceve una risposta descrive il funzionamento al runtime della decompressione quando il dispositivo di integrazione riceve la risposta HTTP dal servizio Web.

Funzionamento della compressione quando si invia una richiesta

La tabella riportata di seguito descrive il funzionamento al runtime della compressione quando il dispositivo di integrazione invia una richiesta HTTP al servizio Web.
Casella di spunta Utilizza compressione/decompressione (Livello attività) Valore Content-Encoding nella richiesta HTTP (Livello messaggio) L'endpoint supporta la compressione? Funzionamento al runtime della compressione del dispositivo di integrazione quando si invia una richiesta
selezionata gzip Il dispositivo di integrazione invia il corpo della richiesta compresso nel formato gzip. L'intestazione Content-Encoding è impostata su gzip nella richiesta.
selezionato valore non significativo no Il dispositivo di integrazione invia il corpo della richiesta non compresso. L'intestazione Content-Encoding è impostata su identity nella richiesta.
deselezionato valore non significativo valore non significativo Il dispositivo di integrazione invia il corpo della richiesta senza apportare alcuna modifica. Il valore corrente dell'intestazione Content-Encoding viene trasmesso così come è nella richiesta.

Valore intestazione Accept-Encoding trasmesso alla richiesta

La tabella riportata di seguito descrive il valore dell'intestazione Accept-Encoding trasmessa nella richiesta HTTP.
Casella di spunta Utilizza compressione/decompressione (Livello attività) Valore Accept-Encoding iniziale L'endpoint supporta la compressione? Valore Accept-Encoding trasmesso nella richiesta HTTP al servizio Web
selezionata gzip,deflate L'intestazione Accept-Encoding è impostata su gzip,deflate nella richiesta.
valore non significativo valore non significativo no Il valore corrente dell'intestazione Accept-Encoding è trasmesso così come è nella richiesta.
deselezionato valore non significativo valore non significativo Il valore corrente dell'intestazione Accept-Encoding è trasmesso così come è nella richiesta.

Funzionamento della decompressione quando si riceve una risposta

La tabella riportata di seguito descrive il funzionamento al runtime della decompressione quando il dispositivo di integrazione riceve la risposta HTTP dal servizio Web.
Casella di spunta Utilizza compressione/decompressione (Livello attività) Valore Content-Encoding nella risposta HTTP (Livello messaggio) L'endpoint supporta la compressione? Funzionamento al runtime della decompressione del dispositivo di integrazione quando riceve una risposta
selezionata gzip Il dispositivo di integrazione decomprime il corpo della risposta utilizzando il formato gzip.
selezionata deflate Il dispositivo di integrazione decomprime il corpo della risposta utilizzando il formato deflate.
selezionata identity Il dispositivo di integrazione non decomprime il corpo della risposta.
selezionata valore non indicato nell'intestazione Accept-Encoding Il dispositivo di integrazione registra un errore indicante che i dati di risposta sono stati ricevuti in un tipo di codifica del contenuto non desiderato.
selezionata valore non significativo no Il dispositivo di integrazione non decomprime il corpo della risposta. Il valore corrente dell'intestazione Content-Encoding viene trasmesso così com'è nella risposta.
deselezionato valore non significativo valore non significativo Il dispositivo di integrazione non decomprime il corpo della risposta.  Il valore corrente dell'intestazione Content-Encoding viene trasmesso così com'è nella risposta.