通过“HTTP 调用/获取/发布/头/放置/删除请求”活动进行压缩/解压

在运行时期间,HTTP 调用/获取/发布/头/放置/删除请求活动会向 HTTP 服务器发送符合 HTTP/HTTPS 1.1 协议的 HTTP 请求。

注: HTTP 调用/获取/发布/头/放置/删除请求活动支持 gzip 或 deflate 格式的压缩/解压。它不支持公共 UNIX 文件压缩格式(称为 compress)。

HTTP 调用/获取/发布/头/放置/删除请求活动的压缩/解压运行时行为取决于下列条件:

在以下部分以及运行时压缩/解压行为部分中提供的表中描述了这些条件对 HTTP 调用/获取/发布/头/放置/删除请求活动的压缩/解压运行时行为的影响。

压缩/解压端点支持

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

压缩/解压的端点支持通过运行时压缩/解压行为部分中提供的表内标为端点支持压缩?的列来表示。

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

HTTP 请求中的内容编码头值可确定请求的主体是否处于压缩状态及其所用的编码类型。例如,如果内容编码为 deflate,那么 Integration Appliance 将发送以 deflate 格式进行压缩的请求主体,如标为发送请求时的压缩行为的第一个表中的第二行以及下图所示。

请求中的接受编码头值可定义 HTTP 客户机在响应中接受的编码类型。 例如,如果在请求中接受编码等于 gzip,deflate,那么 HTTP 服务器可将以 gzip 或 deflate 格式压缩的响应主体发送到 Integration Appliance(充当客户机),如下图中所示:
图 1.
缺省情况下,如果在 HTTP 调用/获取/发布/头/放置/删除请求活动的映射输入任务中未将任何内容映射到可选 httpheaders 输入参数,那么会创建缺省头集。例如,通过 HTTP 调用/获取/发布/头/放置/删除请求活动的“配置”窗格中提供的值自动设置 URL 头。

可以使用 HTTP 调用/获取/发布/头/放置/删除请求活动中映射输入任务的可选 httpheaders 输入参数内的名称/值对显式设置请求的接受编码和内容编码头值。 例如,要将内容编码设置为 deflate,请在可选 httpheaders 输入参数中设置以下名称/值对:

  • httpheaders/httpheaders/otherHeaders/headerItem/name 设置为以下字符串:Content-Encoding
  • httpheaders/httpheaders/otherHeaders/headerItem/value 设置为编码类型,例如字符串:deflate。

如果为请求的接受编码和内容编码头设置了不受支持的值或未设置任何值,那么将提供缺省值,如以下各表所示:

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

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

缺省情况下,并不会对所有 HTTP 活动都使用压缩/解压。您可以通过使用活动的配置任务中显示的使用压缩/解压复选框来选择活动级别的压缩或解压。 在运行时压缩/解压行为中显示的表中,标为使用压缩/解压复选框的列表示使用压缩/解压复选框的设置。

注: 在将来发行版中将不推荐对 HTTP 活动使用使用压缩/解压复选框。 在 HTTP 请求中使用内容编码和接受编码 HTTP 参数可以指定如何解压 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 不会解压响应主体。在响应中,内容编码头的当前值将按原样传递。