During runtime, the HTTP Post Request activity sends a HTTP request complaint with the HTTP/HTTPS 1.1 protocol to the HTTP Server.
The compression/decompression runtime behavior of the HTTP Post Request activity is dependant on the following conditions:
The affect of these conditions on the compression/decompression runtime behavior of the HTTP Post Request activity are described below and in the tables provided in the Runtime Compression/Decompression Behavior section.
The Integration Appliance determines whether or not the HTTP Endpoint supports compression when the Integration Appliance sends the first HTTP request in the compressed format to the HTTP Endpoint (the HTTP Server), if the HTTP Server returns an error code indicating that HTTP Server does not support compression or does not support the specified Content-Encoding type, the Integration Appliance re-sends the first request in uncompressed format and all subsequent requests to this Endpoint are sent in the uncompressed format. In addition, the HTTP response sent by the HTTP Server is not decompressed when received by Integration Appliance.
Endpoint support for compression/decompression is represented by the fourth column labeled Endpoint Supports Compression? in the tables provided in the Runtime Compression/Decompression Behavior section.
The value of the Content-Encoding header in the HTTP request determines if the body of the request is compressed and the type of encoding that is used. For example, if the Content-Encoding is equal to deflate, the Integration Appliance sends the body of the request compressed in the deflate format as shown in the second row of the first table below labeled Compression Behavior When Sending a Request and in the following figure.
The values for the Accept-Encoding and Content-Encoding headers for the request can be explicitly set using name/value pairs in the optional httpheaders input parameter of the Map Inputs task in the HTTP Post Request activity. For example, to set the Content-Encoding to deflate, set the following name/value pair in the optional httpheaders input parameter:
If unsupported values or no values are set for the Accept-Encoding and Content-Encoding headers of the request, default values are provided as shown in the following tables:
The values of the Accept-Encoding and Content-Encoding headers in the request are used by the Integration Appliance and the HTTP server to determine the compression/decompression behavior.
By default, compression and decompression are turned on at the activity level for the HTTP Post Request activity. You can turn off compression/decompression at the activity level by clearing the Use Compression/Decompression check box. The Use Compression/Decompression check box is available in the Configure task of the activity. The second column labeled Use Compression/Decompression Check Box in the following tables provided in the Runtime Compression/Decompression Behavior section, represents the setting of the Use Compression/Decompression check box.
The first table provided in the Compression behavior when sending a request section, describes the compression runtime behavior when the Integration Appliance sends a HTTP request to the HTTP Server.
The second table provided in the Accept-Encoding Header value passed to the request section, describes the value of the Accept-Encoding header passed in the HTTP request.
The third table provided in the Decompression behavior when receiving a response section, describes the decompression runtime behavior when the Integration Appliance receives the HTTP response from the HTTP Server.
The following table describes the compression runtime behavior when the Integration Appliance sends a HTTP request to the HTTP Server.
Use Compression/ Decompression Check Box (Activity Level) | Content-Encoding Value in the HTTP Request (Message Level) | Endpoint Supports Compression? | Integration Appliance Compression Runtime Behavior When Sending a Request |
selected | gzip, not set, or any other string except deflate or identity | yes | The Integration Appliance sends the body of the request compressed in the gzip format. The Content-Encoding header is set to gzip in the request. |
selected | deflate | yes | The Integration Appliance sends the body of the request compressed in the deflate format. The Content-Encoding header is set to deflate in the request. |
selected | identity | yes | The Integration Appliance sends the body of the request uncompressed. The Content-Encoding header is set to identity in the request. |
selected | value is not significant | no | The Integration Appliance sends the body of the request uncompressed. The Content-Encoding header is set to identity in the request. |
cleared | value is not significant | value is not significant | The Integration Appliance sends the body of the request as is (unchanged). The current value of the Content-Encoding header is passed as is in the request. |
The following table describes the value of the Accept-Encoding header passed in the HTTP request.
Use Compression/ Decompression Check Box (Activity Level) | Initial Accept-Encoding Value | Endpoint Supports Compression? | Accept-Encoding Value Passed in the HTTP Request to the Server |
selected | gzip | yes | The Accept-Encoding header is set to gzip in the request. |
selected | deflate | yes | The Accept-Encoding header is set to deflate in the request. |
selected | gzip,deflate | yes | The Accept-Encoding header is set to gzip,deflate in the request. |
selected | deflate,gzip | yes | The Accept-Encoding header is set to deflate,gzip in the request. |
selected | identity | yes | The Accept-Encoding header is set to identity in the request. |
selected | not set, or any other string except deflate, gzip, or identity | yes | The Accept-Encoding header is set to gzip,deflate in the request. |
selected | value is not significant | no | The current value of the Accept-Encoding header is passed as is in the request. |
cleared | value is not significant | value is not significant | The current value of the Accept-Encoding header is passed as is in the request. |
The following table describes the decompression runtime behavior when the Integration Appliance receives the HTTP response from the HTTP Server.
Use Compression/ Decompression Check Box (Activity Level) | Content-Encoding Value in the HTTP Response (Message Level) | Endpoint Supports Compression? | Integration Appliance Decompression Runtime Behavior When Receiving a Response |
selected | gzip | yes | The Integration Appliance decompresses the body of the response using the gzip format. |
selected | deflate | yes | The Integration Appliance decompresses the body of the response using the deflate format. |
selected | identity | yes | The Integration Appliance does not decompress the body of the response. |
selected | value not listed in the Accept-Encoding header | yes | The Integration Appliance logs an error that the response data was received in an unsolicited content encoding type. |
selected | value is not significant | no | The Integration Appliance does not decompress the body of the response. The current value of the Content-Encoding header is passed as is in the response. |
cleared | value is not significant | value is not significant | The Integration Appliance does not decompress the body of the response. The current value of the Content-Encoding header is passed as is in the response. |