

# Recepción de una respuesta de API con una carga comprimida en API Gateway
<a name="api-gateway-receive-response-with-compressed-payload"></a>

Cuando realiza una solicitud en una API habilitada para la compresión, el cliente puede optar por recibir una carga de respuesta comprimida de un formato específico especificando un encabezado `Accept-Encoding` con una [codificación de contenido compatible](api-gateway-enable-compression.md#api-gateway-supported-content-encodings). 

API Gateway solo comprime la carga de respuesta cuando se cumplen las siguientes condiciones:
+  La solicitud entrante tiene el encabezado `Accept-Encoding` con el formato y la codificación de contenido compatibles. 
**nota**  
Si no se define el encabezado, el valor predeterminado es `*` tal y como se define en [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4). En tal caso, API Gateway no comprime la carga útil. Algunos navegadores o clientes pueden añadir `Accept-Encoding` (por ejemplo `Accept-Encoding:gzip, deflate, br`) automáticamente para las solicitudes habilitadas para compresión. Esto puede activar la compresión de la carga útil en API Gateway. Sin una especificación explícita de los valores del encabezado `Accept-Encoding` admitidos, API Gateway no comprime la carga. 
+  `minimumCompressionSize` está establecido en la API para habilitar la compresión.
+  La respuesta de integración no tiene un encabezado `Content-Encoding`. 
+  El tamaño de la carga de respuesta de integración, una vez que se aplica la plantilla de asignación correspondiente, es mayor o igual que el valor `minimumCompressionSize` especificado.

API Gateway aplica una plantilla de asignación configurada para la respuesta de integración antes de que se comprima la carga. Si la respuesta de integración contiene un encabezado `Content-Encoding`, API Gateway presupone que la carga de respuesta de integración ya está comprimida y omite el proceso de compresión.

Un ejemplo de esto es el de la API de PetStore y la siguiente solicitud:

```
GET /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Accept: application/json
```

El backend responde a la solicitud con una carga JSON sin comprimir similar a la siguiente:

```
200 OK

[
  { 
    "id": 1, 
    "type": "dog", 
    "price": 249.99 
  }, 
  { 
    "id": 2, 
    "type": "cat", 
    "price": 124.99 
  }, 
  { 
    "id": 3, 
    "type": "fish", 
    "price": 0.99 
  } 
]
```

Para recibir esta salida como una carga comprimida, el cliente de la API puede enviar una solicitud como la siguiente:

```
GET /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Accept-Encoding:gzip
```

El cliente recibe la respuesta con un encabezado `Content-Encoding` y una carga codificada en GZIP similar a la siguiente: 

```
200 OK
Content-Encoding:gzip
...

���RP�

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

Cuando la carga de respuesta está comprimida, solo el tamaño de los datos comprimidos se tiene en cuenta al facturar la transferencia de información.