通过“HTTP 调用/获取/发布/头/放置/删除请求”活动进行压缩/解压
在运行时期间,HTTP 调用/获取/发布/头/放置/删除请求活动会向 HTTP 服务器发送符合 HTTP/HTTPS 1.1 协议的 HTTP 请求。
HTTP 调用/获取/发布/头/放置/删除请求活动的压缩/解压运行时行为取决于下列条件:
在以下部分以及运行时压缩/解压行为部分中提供的表中描述了这些条件对 HTTP 调用/获取/发布/头/放置/删除请求活动的压缩/解压运行时行为的影响。
压缩/解压端点支持
Integration Appliance 会在向 HTTP 端点(HTTP 服务器)发送第一个压缩格式的 HTTP 请求时确定 HTTP 端点是否支持压缩,如果 HTTP 服务器返回一个指明 HTTP 服务器不支持压缩或不支持指定内容编码类型的错误代码,那么 Integration Appliance 会以未经压缩的格式重新发送第一个请求,而且到此端点的所有后续请求都将以未经压缩的格式来发送。此外,HTTP 服务器发送的 HTTP 响应在由 Integration Appliance 接收时未解压。
压缩/解压的端点支持通过运行时压缩/解压行为部分中提供的表内标为端点支持压缩?的列来表示。
消息级别的内容编码和接受编码值
HTTP 请求中的内容编码头值可确定请求的主体是否处于压缩状态及其所用的编码类型。例如,如果内容编码为 deflate,那么 Integration Appliance 将发送以 deflate 格式进行压缩的请求主体,如标为发送请求时的压缩行为的第一个表中的第二行以及下图所示。

可以使用 HTTP 调用/获取/发布/头/放置/删除请求活动中映射输入任务的可选 httpheaders 输入参数内的名称/值对显式设置请求的接受编码和内容编码头值。 例如,要将内容编码设置为 deflate,请在可选 httpheaders 输入参数中设置以下名称/值对:
- 将 httpheaders/httpheaders/otherHeaders/headerItem/name 设置为以下字符串:Content-Encoding
- 将 httpheaders/httpheaders/otherHeaders/headerItem/value 设置为编码类型,例如字符串:deflate。
如果为请求的接受编码和内容编码头设置了不受支持的值或未设置任何值,那么将提供缺省值,如以下各表所示:
Integration Appliance 和 HTTP 服务器将使用请求中的接受编码和内容编码头值来确定压缩/解压行为。
设置活动级别的压缩/解压
缺省情况下,并不会对所有 HTTP 活动都使用压缩/解压。您可以通过使用活动的配置任务中显示的使用压缩/解压复选框来选择活动级别的压缩或解压。 在运行时压缩/解压行为中显示的表中,标为使用压缩/解压复选框的列表示使用压缩/解压复选框的设置。
运行时压缩/解压行为
发送请求时的压缩行为部分中提供的表描述了 Integration Appliance 向 HTTP 服务器发送 HTTP 请求时的压缩运行时行为。
传递到请求的接受编码头值部分中提供的表描述了传递到 HTTP 请求的接受编码头值。
接收响应时的解压行为部分中提供的表描述了 Integration Appliance 从 HTTP 服务器接收 HTTP 响应时的解压运行时行为。
发送请求时的压缩行为
下表描述了 Integration Appliance 向 HTTP 服务器发送 HTTP 请求时的压缩运行时行为。
“使用压缩/解压”复选框(活动级别) | HTTP 请求中的内容编码值(消息级别) | 端点支持压缩? | 发送请求时的 Integration Appliance 压缩运行时行为 |
---|---|---|---|
已选中 | gzip、不设置或除 deflate 或 identity 之外的任何其他字符串 | 是 | Integration Appliance 将发送以 gzip 格式进行压缩的请求主体。内容编码头在请求中设置为 gzip。 |
已选中 | deflate | 是 | Integration Appliance 将发送以 deflate 格式进行压缩的请求主体。内容编码头在请求中设置为 deflate。 |
已选中 | identity | 是 | Integration Appliance 将发送未经压缩的请求主体。内容编码头在请求中设置为 identity。 |
已选中 | 值无关紧要 | 否 | Integration Appliance 将发送未经压缩的请求主体。内容编码头在请求中设置为 identity。 |
已清除 | 值无关紧要 | 值无关紧要 | Integration Appliance 按原样(未更改)发送请求主体。内容编码头的当前值在请求中按原样传递。 |
传递到请求的接受编码头值
下表描述了通过 HTTP 请求传递的接受编码头值。
“使用压缩/解压”复选框(活动级别) | 初始接受编码值 | 端点支持压缩? | 通过 HTTP 请求传递到服务器的接受编码值 |
---|---|---|---|
已选中 | gzip | 是 | 接受编码头在请求中设置为 gzip。 |
已选中 | deflate | 是 | 接受编码头在请求中设置为 deflate。 |
已选中 | gzip,deflate | 是 | 接受编码头在请求中设置为 gzip,deflate。 |
已选中 | deflate,gzip | 是 | 接受编码头在请求中设置为 deflate,gzip。 |
已选中 | identity | 是 | 接受编码头在请求中设置为 identity。 |
已选中 | 未设置或除 deflate、gzip 或 identity 之外的任何其他字符串 | 是 | 接受编码头在请求中设置为 gzip,deflate。 |
已选中 | 值无关紧要 | 否 | 接受编码头的当前值在请求中按原样传递。 |
已清除 | 值无关紧要 | 值无关紧要 | 接受编码头的当前值在请求中按原样传递。 |
接收响应时的解压行为
下表描述 Integration Appliance 从 HTTP 服务器接收 HTTP 响应时的解压运行时行为。
“使用压缩/解压”复选框(活动级别) | HTTP 响应中的内容编码值(消息级别) | 端点支持压缩? | 接收响应时的 Integration Appliance 解压运行时行为 |
---|---|---|---|
已选中 | gzip | 是 | Integration Appliance 将使用 gzip 格式解压响应主体。 |
已选中 | deflate | 是 | Integration Appliance 将使用 deflate 格式解压响应主体。 |
已选中 | identity | 是 | Integration Appliance 不会解压响应主体。 |
已选中 | 值不列在接受编码头中 | 是 | Integration Appliance 将记录与收到非请求内容编码类型的响应数据有关的错误。 |
已选中 | 值无关紧要 | 否 | Integration Appliance 不会解压响应主体。在响应中,内容编码头的当前值将按原样传递。 |
已清除 | 值无关紧要 | 值无关紧要 | Integration Appliance 不会解压响应主体。在响应中,内容编码头的当前值将按原样传递。 |