# Como habilitar a compressão gzip para Applications

Gzip é o método padrão de compressão *lossless* de arquivos para aplicações web. Por usar o algoritmo Deflate para reduzir o tamanho de arquivos antes de serem enviados a navegadores, a compressão gzip proporciona renderização de página e downloads mais rápidos para seus usuários.

:::note
A **compressão Brotli** também está disponível para Applications. O Brotli geralmente alcança melhores taxas de compressão que o gzip, resultando em arquivos menores e entregas mais rápidas. Para habilitar a compressão Brotli para sua aplicação, entre em contato com o [Suporte Azion](https://www.azion.com/pt-br/documentacao/servicos/suporte/).
:::

Ao habilitar a compressão gzip para Azion **Applications**, os seguintes eventos acontecem durante uma requisição por conteúdo de sua aplicação:

1. No edge node, a Azion verifica o cache por uma versão comprimida do arquivo.
2. Se o arquivo já estiver comprimido, ele é entregue ao navegador. Se não, a Azion comprime o arquivo, devolve ao navegador, e o adiciona ao cache.
3. O navegador do usuário interpreta e descompressa o arquivo.

:::tip
Para mais informações e links úteis, consulte o [site oficial de gzip](https://www.gzip.org/).
:::

---

## Habilite compressão gzip usando Rules Engine

Você pode habilitar a compressão gzip para qualquer application usando o [Rules Engine para Applications](/pt-br/documentacao/produtos/build/applications/rules-engine/).

Para habilitar a compressão gzip para sua aplicação, siga os passos:

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Applications**.
2. Clique na aplicação que você deseja configurar.
3. Na aba **Rules Engine**, clique no botão **+ Rule**.
4. Dê um nome à sua regra e, se necessário, uma descrição.
5. Selecione **Response Phase** ou **Request Phase**.
6. Na seção **Criteria**, defina o critério para ativação do comportamento.
    - Para aplicar compressão gzip para sua aplicação como um todo, você pode definir um critério padrão da seguinte maneira: If `${uri}` starts with `/`
7. Na seção **Behavior**, selecione o comportamento **Enable gzip**.
8. Clique no botão **Save**.


Para verificar se a compressão gzip foi aplicada, acesse sua aplicação e inspecione a página. O cabeçalho de requisição `Content-Encoding` deverá conter o valor `gzip`.

---

## Suporte para compressão gzip

Os servidores Azion dão suporte à compressão gzip para extensões de arquivos específicos, identificadas através do tipo MIME (*Multipurpose Internet Mail Extensions*).

### Sobre tipos MIME

Quando uma página carrega em um navegador, um servidor envia informação sobre o conteúdo e dados da página para o navegador. Esses detalhes são guardados em cabeçalhos de requisição e enviados ao navegador para que ele possa carregar e interpretar a página.

O cabeçalho `Content-Type` é responsável por guardar informações sobre o tipo do conteúdo da página sob o tipo MIME. Os tipos MIME informam os tipos de documentos, arquivos ou sequências de bytes dentro da aplicação web, bem como a forma que elas devem ser processadas.

O tipo MIME é composto de um tipo e subtipo combinados por um símbolo de `/` entre eles. O tipo representa a categoria do arquivo. Por exemplo: textos são tipo `text`; imagens são tipo `image`. Já o subtipo significa o tipo exato do dado representado pelo tipo MIME. Por exemplo: o tipo MIME `image` pode carregar os subtipos `jpeg` ou `png`.

Portanto, quando seu navegador encontra um elemento HTML `<img>`, ele envia uma requisição ao servidor, e se a imagem do elemento for .png, o servidor retorna o cabeçalho e o MIME type: `Content-Type: image/png`.

> A [*Internet Assigned Numbers Authority* (IANA)](https://www.iana.org/assignments/media-types/media-types.xhtml) é a entidade responsável pelos tipos MIME oficiais.

Arquivos que passaram por compressão gzip devem manter seus tipos MIME originais no cabeçalho da requisição, pois o navegador é responsável por descomprimir o arquivo quando a requisição é finalizada.

### Lista de tipos MIME suportados para compressão gzip

| Tipo MIME                     | Extensão                                    | Tipo de documento                        |
| --- | --- | --- |
| application/eot               | .eot                                         | MS Embedded OpenType fonts           |
| application/font              |                                              | OpenType font                        |
| application/font-sfnt         | .ttf <br/>.otf                               | SFNT format                          |
| application/font-woff         | .woff                                        | Web Open Font Format (WOFF)          |
| application/font-woff2        | .woff2                                       | Web Open Font Format 2 (WOFF2)       |
| application/javascript        | .js                                          | JavaScript                           |
| application/json              | .json                                        | JSON format                          |
| application/ld+json           | .jsonld                                      | JSON-LD format                       |
| application/opentype          | .otf<br/>.otc<br/>.ttf<br/>.ttc              | OpenType                             |
| application/otf               | .otf                                         | OpenType                             |
| application/truetype          | .ttf<br/>.tte                                | TrueType                             |
| application/ttf               | .ttf                                         | TrueType                             |
| application/vnd.ms-fontobject | .eot                                         | MS Embedded OpenType fonts           |
| application/x-font-opentype   | .otf                                         | OpenType                             |
| application/x-font-truetype   | .ttf                                         | TrueType                             |
| application/x-font-ttf        | .ttc <br/>.ttf                               | TrueType                             |
| application/x-httpd-cgi       | .pl <br/>.sh <br/>.cgi                       | CGI scripts/programs                 |
| application/x-javascript      | .js                                          | JavaScript                           |
| application/x-mpegurl         | .M3U8                                        | iPhone Index                         |
| application/x-opentype        | .ttc                                         | OpenType font                        |
| application/x-otf             | .otf                                         | OpenType font                        |
| application/x-perl            | .plx<br/>.pl<br/>.pm<br/>.xs<br/>.t<br/>.pod | Perl script                          |
| application/x-ttf             | .ttf                                         | TrueType                             |
| application/xhtml+xml         | .xhtml                                       | XHTML                                |
| application/xml+rss           | .rss <br/>.xml                               | RSS, Atom and XML                    |
| font/eot                      | .eot                                         | Embedded Open Type                   |
| font/opentype                 | otf<br/>.otc<br/>.ttf<br/>.ttc               | OpenType font                        |
| font/otf                      | .otf                                         | OpenType font                        |
| font/ttf                      | .ttf                                         | TrueType font                        |
| image/svg+xml                 | .svg                                         | Scalable Vector Graphics (SVG)       |
| image/x-icon                  | .ico                                         | ICO                                  |
| text/css                      | .css                                         | Cascading Style Sheets (CSS)         |
| text/csv                      | .csv                                         | Comma-separated values (CSV)         |
| text/html                     | .htm<br/>.html                               | HyperText Markup Language (HTML)     |
| text/javascript               | .js                                          | JavaScript                           |
| text/js                       | .js                                          | JavaScript                           |
| text/plain                    | .txt                                         | Text (generally ASCII or ISO 8859-n) |
| text/richtext                 | .rtf                                         | Rich Text Format                     |
| text/tab-separated-values     | .tsv<br/>.tab                                | Tab-separated values                 |
| text/x-component              | .htc                                         | HTML Components                      |
| text/x-java-source            | .jav                                         | Java Source                          |
| text/x-markdown               | .md                                          | Markdown                             |
| text/x-script                 | .hlb                                         | HP OpenVMS                           |
| text/xml<br/>application/xml  | .xml                                         | XML                                  |

---