

# API Gateway에서 압축된 페이로드가 포함된 API 응답 수신
<a name="api-gateway-receive-response-with-compressed-payload"></a>

압축이 활성화된 API에서 요청을 할 때 클라이언트는 [지원되는 콘텐츠 코딩](api-gateway-enable-compression.md#api-gateway-supported-content-encodings)으로 `Accept-Encoding` 헤더를 지정하여 특정 형식의 압축된 응답 페이로드를 수신할 수 있습니다.

API Gateway는 다음 조건이 충족되는 경우에만 응답 페이로드를 압축합니다.
+  수신되는 요청에는 지원되는 코딩 및 형식의 `Accept-Encoding` 헤더가 있습니다.
**참고**  
헤더가 설정되지 않은 경우, 기본값은 [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4)에 정의된 대로 `*`입니다. 이러한 경우 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
...

���RP�

J�)JV
�:P^IeA*������+(�L	�X�YZ�ku0L0B7!9��C#�&����Y��a���^�X
```

응답 페이로드가 압축되면 데이터 전송 요금은 압축된 데이터 크기에 대해서만 청구됩니다.