Como habilitar a compressão gzip para Edge Application
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.
Ao habilitar a compressão gzip para Azion Edge Application, os seguintes eventos acontecem durante uma requisição por conteúdo de sua aplicação:
- No edge node, a Azion verifica o cache por uma versão comprimida do arquivo.
- 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.
- O navegador do usuário interpreta e descompressa o arquivo.
Habilite compressão gzip usando Rules Engine
Você pode habilitar a compressão gzip para qualquer edge application usando o Rules Engine para Edge Application.
Para habilitar a compressão gzip para sua aplicação, siga os passos:
- Acesse o Azion Console > Edge Application.
- Clique na aplicação que você deseja configurar.
- Na aba Rules Engine, clique no botão + Rule.
- Dê um nome à sua regra e, se necessário, uma descrição.
- Selecione Response Phase ou Request Phase.
- 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/
- Para aplicar compressão gzip para sua aplicação como um todo, você pode definir um critério padrão da seguinte maneira: If
- Na seção Behavior, selecione o comportamento Enable gzip.
- Clique no botão Save.
- Acesse o Real-Time Manager (RTM).
- Selecione Products menu > Edge Application.
- Clique na aplicação que você deseja configurar.
- Na aba Rules Engine, clique no botão Add Rule e selecione Response Phase ou Request Phase.
- Dê um nome à sua regra e, se necessário, uma descrição.
- 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/
- Para aplicar compressão gzip para sua aplicação como um todo, você pode definir um critério padrão da seguinte maneira: If
- Na seção Behavior, selecione o comportamento Enable gzip.
- 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) é 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 .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 .otc .ttf .ttc | OpenType |
application/otf | .otf | OpenType |
application/truetype | .ttf .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 .ttf | TrueType |
application/x-httpd-cgi | .pl .sh .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 .pl .pm .xs .t .pod | Perl script |
application/x-ttf | .ttf | TrueType |
application/xhtml+xml | .xhtml | XHTML |
application/xml+rss | .rss .xml | RSS, Atom and XML |
font/eot | .eot | Embedded Open Type |
font/opentype | otf .otc .ttf .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 .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 .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 application/xml | .xml | XML |