API Gateway에서 압축된 페이로드가 포함된 API 응답 수신
압축이 활성화된 API에서 요청을 할 때 클라이언트는 지원되는 콘텐츠 코딩으로 Accept-Encoding
헤더를 지정하여 특정 형식의 압축된 응답 페이로드를 수신할 수 있습니다.
API Gateway는 다음 조건이 충족되는 경우에만 응답 페이로드를 압축합니다.
-
수신되는 요청에는 지원되는 코딩 및 형식의
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 ... ���RP� J�)JV �:P^IeA*������+(�L �X�YZ�ku0L0B7!9��C#�&����Y��a���^�X
응답 페이로드가 압축되면 데이터 전송 요금은 압축된 데이터 크기에 대해서만 청구됩니다.