使用“Web Service 调用服务”活动进行压缩/解压

在运行时期间,Web Service 调用服务活动会向 Web Service 发送与 HTTP/HTTPS 1.1 协议兼容的 HTTP 请求。调用服务活动仅支持 gzip 格式的压缩以及 gzip 或 deflate 格式的解压缩。

注: 调用服务活动不支持称为 compress 的通用 UNIX 文件压缩格式。
调用服务活动的压缩/解压运行时行为取决于下列条件:

以下部分以及运行时压缩/解压行为部分中所提供的表描述了这些条件对调用服务活动压缩/解压运行时行为的影响。

针对压缩/解压的端点支持

Integration Appliance 会在向 HTTP 端点 (Web Service) 发送第一个压缩格式的 HTTP 请求时确定 Web 端点是否支持压缩,如果 Web Service 返回一个指明 Web Service 不支持压缩或不支持指定内容编码类型的错误代码,那么 Integration Appliance 会以未经压缩的格式重新发送第一个请求,而且到此端点的所有后续请求都将以未经压缩的格式来发送。此外,Web Service 所发送的 Web 响应在被 Integration Appliance 接收时也处于解压状态。

针对压缩/解压的端点支持将由运行时压缩/解压行为部分所提供表中标为端点支持压缩?的第四列来表示。

消息级别的内容编码和接受编码值

HTTP 请求中的内容编码头值可确定请求主体是已压缩还是未使用。 对于“调用服务”活动,Integration Appliance 会将内容编码设置为 gzip 并会发送以 gzip 格式进行压缩的请求主体, 如标为发送请求时的压缩行为的第一个表中的第二行以及下图所示。

请求中的接受编码头值可定义 HTTP 客户机在响应中接受的编码类型。 对于调用服务活动,Integration Appliance 会在请求中将接受编码设置为等于 gzip,deflate, 而且 Web Service 会向 Integration Appliance(充当客户机)发送以 gzip 或 deflate 格式进行压缩的响应主体,如下图所示:

Integration Appliance 和 Web Service 将使用请求中的接受编码和内容编码头值来确定压缩/解压行为。

在活动级别设置压缩/解压

缺省情况下,会在活动级别为调用服务活动打开压缩和解压。 您可以清除使用压缩/解压复选框以在活动级别关闭压缩/解压。使用压缩/解压复选框在活动的配置任务中可用。运行时压缩/解压行为部分所提供的以下各表中标为使用压缩/解压复选框的第二列表示“使用压缩/解压”复选框的设置。

弃用说明:将来的发行版将弃用使用压缩/解压复选框。在 HTTP 请求中使用内容编码和接受编码 HTTP 参数可以指定如何解压 HTTP 请求的主体并压缩 HTTP 响应的主体。

运行时压缩/解压行为

发送请求时的压缩行为部分中所提供的第一个表描述了 Integration Appliance 向 Web Service 发送 HTTP 请求时的压缩运行时行为。

传递到请求的接受编码头值部分中所提供的第二个表描述了通过 HTTP 请求传递的接受编码头值。

接收响应时的解压行为部分中所提供的第三个表描述了 Integration Appliance 从 Web Service 接收 HTTP 响应时的解压运行时行为。

发送请求时的压缩行为

下表描述了 Integration Appliance 向 Web Service 发送 HTTP 请求时的压缩运行时行为。
“使用压缩/解压”复选框(活动级别) HTTP 请求中的内容编码值(消息级别) 端点支持压缩? 发送请求时的 Integration Appliance 压缩运行时行为
已选中 gzip Integration Appliance 将发送以 gzip 格式进行压缩的请求主体。在请求中,内容编码头将被设置为 gzip
已选中 值无关紧要 Integration Appliance 将发送未经压缩的请求主体。在请求中,内容编码头将被设置为 identity
已清除 值无关紧要 值无关紧要 Integration Appliance 将按原样(不作任何更改)发送请求主体。在请求中,内容编码头的当前值将按原样传递。

传递到请求的接受编码头值

下表描述了通过 HTTP 请求传递的接受编码头值。
“使用压缩/解压”复选框(活动级别) 初始接受编码值 端点支持压缩? 通过 HTTP 请求传递到 Web Service 的接受编码值
已选中 gzip,deflate 在请求中,接受编码头将被设置为 gzip,deflate
值无关紧要 值无关紧要 在请求中,接受编码头的当前值将按原样传递。
已清除 值无关紧要 值无关紧要 在请求中,接受编码头的当前值将按原样传递。

接收响应时的解压行为

下表描述了 Integration Appliance 从 Web Service 接收 HTTP 响应时的解压运行时行为。
“使用压缩/解压”复选框(活动级别) HTTP 响应中的内容编码值(消息级别) 端点支持压缩? 接收响应时的 Integration Appliance 解压运行时行为
已选中 gzip Integration Appliance 将使用 gzip 格式解压响应主体。
已选中 deflate Integration Appliance 将使用 deflate 格式解压响应主体。
已选中 identity Integration Appliance 不会解压响应主体。
已选中 值不列在接受编码头中 Integration Appliance 将记录与收到非请求内容编码类型的响应数据有关的错误。
已选中 值无关紧要 Integration Appliance 不会解压响应主体。在响应中,内容编码头的当前值将按原样传递。
已清除 值无关紧要 值无关紧要 Integration Appliance 不会解压响应主体。在响应中,内容编码头的当前值将按原样传递。



反馈 | 声明


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/WS_Compression_Decompression_with_the_WS_Invoke_Service_Activity.html