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:

  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.

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:

  1. Acesse o Azion Console > Edge Application.
  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) é 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 MIMEExtensãoTipo de documento
application/eot.eotMS Embedded OpenType fonts
application/fontOpenType font
application/font-sfnt.ttf
.otf
SFNT format
application/font-woff.woffWeb Open Font Format (WOFF)
application/font-woff2.woff2Web Open Font Format 2 (WOFF2)
application/javascript.jsJavaScript
application/json.jsonJSON format
application/ld+json.jsonldJSON-LD format
application/opentype.otf
.otc
.ttf
.ttc
OpenType
application/otf.otfOpenType
application/truetype.ttf
.tte
TrueType
application/ttf.ttfTrueType
application/vnd.ms-fontobject.eotMS Embedded OpenType fonts
application/x-font-opentype.otfOpenType
application/x-font-truetype.ttfTrueType
application/x-font-ttf.ttc
.ttf
TrueType
application/x-httpd-cgi.pl
.sh
.cgi
CGI scripts/programs
application/x-javascript.jsJavaScript
application/x-mpegurl.M3U8iPhone Index
application/x-opentype.ttcOpenType font
application/x-otf.otfOpenType font
application/x-perl.plx
.pl
.pm
.xs
.t
.pod
Perl script
application/x-ttf.ttfTrueType
application/xhtml+xml.xhtmlXHTML
application/xml+rss.rss
.xml
RSS, Atom and XML
font/eot.eotEmbedded Open Type
font/opentypeotf
.otc
.ttf
.ttc
OpenType font
font/otf.otfOpenType font
font/ttf.ttfTrueType font
image/svg+xml.svgScalable Vector Graphics (SVG)
image/x-icon.icoICO
text/css.cssCascading Style Sheets (CSS)
text/csv.csvComma-separated values (CSV)
text/html.htm
.html
HyperText Markup Language (HTML)
text/javascript.jsJavaScript
text/js.jsJavaScript
text/plain.txtText (generally ASCII or ISO 8859-n)
text/richtext.rtfRich Text Format
text/tab-separated-values.tsv
.tab
Tab-separated values
text/x-component.htcHTML Components
text/x-java-source.javJava Source
text/x-markdown.mdMarkdown
text/x-script.hlbHP OpenVMS
text/xml
application/xml
.xmlXML


Contribuidores