传入请求具有
Accept-Encoding
标头和支持的内容编码及格式。
如果未设置标头,默认值为
*
(在
RFC 7231
中定义)。在这种情况下,API Gateway 不会压缩有效负载。某些浏览器或客户端可能会为启用了压缩的请求自动添加
Accept-Encoding
(例如
Accept-Encoding:gzip, deflate, br
)。这会在 API Gateway 中启用负载压缩。如果没有对支持的
Accept-Encoding
标头值的明确规范,API Gateway 不会压缩负载。
在 API 上设置了
minimumCompressionSize
以启用压缩。
集成响应没有
Content-Encoding
标头。
集成响应负载的大小,在应用了适用的映射模板之后,大于或等于指定的
minimumCompressionSize
值。
API Gateway 在压缩负载之前,应用为集成响应配置的任意映射模板。如果集成响应包含
Content-Encoding
标头,API Gateway 假设集成响应负载已经压缩并跳过压缩处理。
以 PetStore API 示例及以下请求为例:
GET /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Accept: application/json
后端对具有未压缩 JSON 负载的请求的响应类似于以下内容:
200 OK
"id": 1,
"type": "dog",
"price": 249.99
"id": 2,
"type": "cat",
"price": 124.99
"id": 3,
"type": "fish",
"price": 0.99
]
要将此输出作为压缩负载接收,您的 API 客户端可以按以下所示提交请求:
GET /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Accept-Encoding:gzip
客户端接收具有
Content-Encoding
标头和 GZIP 编码负载的响应,类似于以下内容:
200 OK
Content-Encoding:gzip