압축된 페이로드가 포함된 API 응답 수신 - Amazon 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

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