在运行时期间,HTTP 发布请求活动会向 HTTP Server 发送与 HTTP/HTTPS 1.1 协议兼容的 HTTP 请求。
HTTP 发布请求活动的压缩/解压运行时行为取决于下列条件:
在下方以及运行时压缩/解压行为部分中提供的表内描述了这些条件对 HTTP 发布请求活动的压缩/解压运行时行为的影响。
当 Integration Appliance 以压缩格式将第一个 HTTP 请求发送到 HTTP 端点 (HTTP Server) 时,Integration Appliance 会确定 HTTP 端点是否支持压缩,如果 HTTP Server 返回错误代码,指示 HTTP Server 不支持压缩或不支持指定的内容编码类型,那么 Integration Appliance 会以未压缩格式重新发送第一个请求,并且发送到此端点的所有后续请求都是以未压缩格式进行发送。此外,HTTP Server 发送的 HTTP 响应在由 Integration Appliance 接收时未解压。
压缩/解压端点支持通过运行时压缩/解压行为部分中提供的表内标示为端点支持压缩?的第四列来表示。
HTTP 请求中的内容编码头值可确定请求的主体是否处于压缩状态及其所用的编码类型。例如,如果内容编码等于 deflate,那么 Integration Appliance 将发送以 deflate 格式进行压缩的请求主体,如以下标为发送请求时的压缩行为的第一个表中的第二行以及下图所示。
可以使用 HTTP 发布请求活动中映射输入任务的可选 httpheaders 输入参数内的名称/值对显式设置请求的接受编码和内容编码头值。 例如,要将内容编码设置为 deflate,请在可选 httpheaders 输入参数中设置以下名称/值对:
如果为请求的接受编码和内容编码头设置了不受支持的值或未设置任何值,那么将提供缺省值,如以下各表所示:
Integration Appliance 和 HTTP 服务器将使用请求中的接受编码和内容编码头值来确定压缩/解压行为。
缺省情况下,会在活动级别为 HTTP 发布请求活动打开压缩和解压。 您可以通过清除使用压缩/解压复选框在活动级别关闭压缩/解压。使用压缩/解压复选框在活动的配置任务中可用。运行时压缩/解压行为部分中提供的下列表内标示为使用压缩/解压复选框的第二列表示使用压缩/解压复选框的设置。
发送请求时的压缩行为部分中提供的第一个表描述 Integration Appliance 向 HTTP Server 发送 HTTP 请求时的压缩运行时行为。
传递到请求的接受编码头值部分中提供的第二个表描述传递到 HTTP 请求中的接受编码头值。
接收响应时的解压行为部分中提供的第三个表描述 Integration Appliance 从 HTTP Server 接收 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 请求传递到服务器的接受编码值 |
已选中 | gzip | 是 | 接受编码头在请求中设置为 gzip。 |
已选中 | deflate | 是 | 接受编码头在请求中设置为 deflate。 |
已选中 | gzip,deflate | 是 | 接受编码头在请求中设置为 gzip,deflate。 |
已选中 | deflate,gzip | 是 | 接受编码头在请求中设置为 deflate,gzip。 |
已选中 | identity | 是 | 接受编码头在请求中设置为 identity。 |
已选中 | 未设置或除 deflate、gzip 或 identity 之外的任何其他字符串 | 是 | 接受编码头在请求中设置为 gzip,deflate。 |
已选中 | 值无关紧要 | 否 | 接受编码头的当前值在请求中按原样传递。 |
已清除 | 值无关紧要 | 值无关紧要 | 接受编码头的当前值在请求中按原样传递。 |
“使用压缩/解压”复选框(活动级别) | HTTP 响应中的内容编码值(消息级别) | 端点支持压缩? | 接收响应时的 Integration Appliance 解压运行时行为 |
已选中 | gzip | 是 | Integration Appliance 使用 gzip 格式解压响应主体。 |
已选中 | deflate | 是 | Integration Appliance 使用 deflate 格式解压响应主体。 |
已选中 | identity | 是 | Integration Appliance 不会解压响应主体。 |
已选中 | 值不列在接受编码头中 | 是 | Integration Appliance 记录错误,指示收到了非请求内容编码类型的响应数据。 |
已选中 | 值无关紧要 | 否 | Integration Appliance 不会解压响应主体。内容编码头的当前值在响应中按原样传递。 |
已清除 | 值无关紧要 | 值无关紧要 | Integration Appliance 不会解压响应主体。内容编码头的当前值在响应中按原样传递。 |