A compactação dinâmica compacta automaticamente as respostas disponibilizadas pelo Media CDN. O tamanho dos dados enviados pela rede é reduzido de 60% para 85% nos casos típicos.
A redução de tamanho acelera o download de recursos importantes, como folhas de estilo (CSS), scripts (JavaScript) e manifestos de vídeo (HLS/DASH), o que pode reduzir significativamente os tempos de carregamento de página e de início do vídeo.
Playlists de vídeo ao vivo grandes (manifestos) têm uma quantidade significativa de dados e buscas repetidos, incluindo o host e o prefixo de caminho de cada segmento, bem como os metadados de playlist HLS ou DASH. Quanto mais rápido o download ou a atualização da playlist forem feitos, menor será o tempo de espera do cliente para a análise e o início do download dos segmentos de vídeo referenciados. As playlists HLS e DASH geralmente passam por uma redução total de tamanho de mais de 90%.
Para mais informações sobre os benefícios da compactação de respostas, consulte o Guia de fundamentos da Web.
Como funciona a compactação dinâmica
Quando a compactação dinâmica está ativada, o conteúdo compactável
disponibilizado pela origem pode ser compactado antes de ser entregue se o
cliente aceitar um dos algoritmos de compactação compatíveis (br ou gzip).
O Media CDN adiciona um cabeçalho Vary: Accept-Encoding a todas as respostas qualificadas para compactação. Para informações relacionadas, consulte
Conteúdo não compactável.
Além disso, se o cabeçalho Accept-Encoding da solicitação indicar uma preferência por conteúdo compactado especificando br ou gzip (e, opcionalmente, incluindo um parâmetro q diferente de zero), o Media CDN fará o seguinte:
Remove o cabeçalho
Content-Lengthda resposta. Isso é necessário para que a resposta seja disponibilizada o mais rápido possível, porque o comprimento total do conteúdo é desconhecido até que toda a resposta seja compactada. Para HTTP/1.1 e anteriores, o Media CDN usaTransfer-Encoding: chunkedna resposta quando não usaContent-Length.Depois que uma resposta tiver sido compactada e armazenada em cache, o Media CDN poderá incluir o cabeçalho
Content-Lengthnas respostas subsequentes e definir o valor como o comprimento do conteúdo do corpo compactado.Define
Accept-Rangescomonone. Isso informa aos clientes que as solicitações de intervalo para esse recurso são ignoradas.Enfraquece todos os cabeçalhos de resposta
ETagfortes, conforme exigido pela seção 8.8.3 da RFC 9110. Por exemplo,ETag: "xyzzy"é substituído porETag: W/"xyzzy".Define o cabeçalho
Content-Encodingcomobrougzip, que significa o algoritmo de compactação escolhido.O Media CDN escolhe o melhor algoritmo de compactação com base na proporção de compactação prevista da resposta e na velocidade ou capacidade de processamento da compactação.
A compactação Brotli é usada se o cliente a oferecer suporte, mesmo que outros algoritmos de compactação tenham valores
qmais altos no cabeçalhoAccept-Encoding.Os manifestos HLS são compactados usando apenas
gzip.
O Media CDN determina o nível de compactação para equilibrar o tamanho total do download e o custo da CPU no cliente. Níveis de compactação mais altos nem sempre beneficiam o desempenho, especialmente em dispositivos móveis com menor consumo de energia.
Configurar a compactação dinâmica
É possível ativar a compactação dinâmica em rotas que atendem a solicitações.
Antes de começar
Faça o seguinte:
Identifique ou crie uma origem do Media CDN com conteúdo compactável que esteja pronto para ser disponibilizado.
Identifique ou crie um serviço do Media CDN com pelo menos uma regra de rota.
Ativar a compactação dinâmica para uma regra de rota
Por padrão, o modo de compactação de uma regra de rota está desativado.
Definir o modo como automático ativa a compactação dinâmica para todas as respostas qualificadas. Além disso, instrui o Media CDN a escolher automaticamente o melhor algoritmo de compactação.
Para ativar a compactação dinâmica, faça o seguinte:
Console
No Google Cloud console do, acesse a página Media CDN.
Para abrir a página Detalhes do serviço em que você quer configurar uma regra de rota, clique no nome do serviço.
Para mudar para o modo de edição, clique no botão Editar.
Para navegar até a seção Roteamento, clique em Próxima.
Para editar uma regra de host, clique na seta para expandi-la.
Para editar uma regra de rota, clique em Editar na linha correspondente.
No painel Editar regra de rota, clique em Configurações avançadas.
Opcional: em Rota de ação, adicione um política de CDN item.
Uma política de CDN permite que o Media CDN compacte o conteúdo uma vez e o disponibilize várias vezes, o que economiza largura de banda e acelera a entrega.
Na seção Compactação dinâmica, selecione Ativar compactação.
Para salvar a regra de rota, clique em Salvar.
Para salvar as alterações no serviço, clique em Atualizar serviço.
gcloud e YAML
Exporte a configuração do Media CDN para um arquivo YAML. Use o
gcloud edge-cache services exportcomando.gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yamlSubstitua:
SERVICE_NAME: o nome do serviço;FILENAME: o nome do arquivo YAML.
Na definição de rota no arquivo YAML, em
routeAction, definacompressionModecomoAUTOMATIC, conforme mostrado no exemplo a seguir:routing: hostRules: - hosts: - media.example.com pathMatcher: routes pathMatchers: - name: routes routeRules: - priority: 2 origin: origin1 matchRules: - pathTemplateMatch: "/**.m3u8" # HLS playlists - pathTemplateMatch: "/**.mpd" # DASH manifests routeAction: cdnPolicy: defaultTtl: 5s compressionMode: AUTOMATICPara atualizar o serviço, importe a configuração do Media CDN do arquivo YAML. Use o
gcloud edge-cache services importcomando.gcloud edge-cache services import SERVICE_NAME \ --source=FILENAME.yaml
Terraform
O snippet do Terraform a seguir mostra uma regra de rota com a compactação dinâmica ativada.
Sua configuração será propagada em breve para todos os locais de borda.
Quando a compactação dinâmica está ativada para uma rota e a nova configuração entra em vigor em máquinas de produção, o Media CDN começa a compactar respostas qualificadas, mesmo que versões armazenadas em cache não compactadas existam. Enquanto o Media CDN busca e compacta novos conteúdos, pode haver um pico temporário no tráfego para sua origem.
Desativar a compactação dinâmica para uma regra de rota
Para desativar a compactação dinâmica, faça o seguinte:
Console
No Google Cloud console do, acesse a página Media CDN.
Para abrir a página Detalhes do serviço em que você quer configurar a regra de rota, clique no nome do serviço.
Para mudar para o modo de edição, clique no botão Editar.
Para navegar até a seção Roteamento, clique em Próxima.
Para editar uma regra de host, clique na seta para expandi-la.
Para editar uma regra de rota, clique em Editar na linha correspondente.
No painel Editar regra de rota, clique em Configurações avançadas.
Na seção Compactação dinâmica, desmarque Ativar compactação.
Para salvar a regra de rota, clique em Salvar.
Para salvar as alterações no serviço, clique em Atualizar serviço.
gcloud e YAML
Exporte a configuração do Media CDN para um arquivo YAML. Use o
gcloud edge-cache services exportcomando.gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yamlSubstitua:
SERVICE_NAME: o nome do serviço;FILENAME: o nome do arquivo YAML.
Na definição de rota no arquivo YAML, defina
compressionModecomoDISABLED.Para atualizar o serviço, importe a configuração do Media CDN do arquivo YAML. Use o
gcloud edge-cache services importcomando.gcloud edge-cache services import SERVICE_NAME \ --source=FILENAME.yaml
Se você encontrar problemas com a compactação dinâmica para uma rota específica, como problemas de compatibilidade com determinados clientes (por exemplo, smart TVs ou dispositivos de streaming), para impedir que o Media CDN disponibilize conteúdo compactado nessa rota, desative a compactação dinâmica.
A desativação da compactação dinâmica para uma rota faz com que o Media CDN pare de disponibilizar conteúdo compactado do cache. Todas as respostas compactadas armazenadas em cache anteriormente se tornam inválidas, e a CDN busca versões não compactadas da sua origem.
Tipos de conteúdo compactável
A compactação dinâmica se aplica aos tipos MIME a seguir, com base no cabeçalho de resposta HTTP Content-Type. As respostas que não têm um cabeçalho Content-Type não são compactadas.
Os tipos de conteúdo comuns e os tipos MIME incluem:
- Conteúdo HTML:
text/html - Folhas de estilo:
text/css - JavaScript:
application/javascript - JSON:
application/json - Playlists de HLS:
application/x-mpegURLouapplication/vnd.apple.mpegURL - Manifestos DASH:
application/dash+xml
A tabela a seguir resume como o tipo MIME afeta a capacidade de compactação.
| Tipos MIME compactáveis | |
|---|---|
| Correspondência exata |
application/csv application/javascript application/json application/json+protobuf application/signed-exchange application/wasm application/x-javascript application/x-nacl application/x-plist application/x-pnacl application/x-protobuf application/x-protobuffer application/x-sdch-dictionary application/xml audio/mpegURL font/eot font/otf font/ttf image/pwg-raster image/svg+xml image/vnd.microsoft.icon image/x-icon video/vnd.mpeg.dash.mpd |
| Correspondência de padrão | application/*+json application/*+xml application/*mpegURL text/* |
Os formatos de imagem e vídeo (como image/jpeg, image/png e video/mpeg4) já são quase sempre compactados. Portanto, o Media CDN não os compacta. A recompactação de uma resposta já compactada raramente reduz o tamanho do arquivo e os clientes podem apresentar um comportamento inesperado ao receber uma resposta desse tipo.
Respostas não compactáveis
O Media CDN não compacta uma resposta que tenha uma ou mais destas características:
- A resposta não tem um cabeçalho
Content-Typeque corresponda a um tipo de conteúdo compactável. - A resposta não tem um cabeçalho
Content-Length. - A resposta tem um cabeçalho
Content-Encoding. Isso implica que a origem já compactou a resposta. Portanto, o Media CDN não pode fazer nenhuma compactação dinâmica adicional. A resposta é menor que 1 KiB.
O tempo gasto na compactação e descompactação geralmente compensa quaisquer benefícios. Há também menos conteúdo para compactar, o que pode reduzir a eficácia da compactação e levar a uma proporção de compactação mais baixa.
A resposta é maior que 1 MiB.
O Media CDN compacta respostas até o tamanho permitido para objetos de armazenamento em cache sem armazenamento em cache de intervalo de bytes.
A resposta tem um cabeçalho
Cache-Control: no-transform.
Geração de registros e monitoramento
Quando a compactação está ativada, a métrica https/response_bytes_count de edgecache.googleapis.com/EdgeCacheRouteRule informa o tamanho da resposta compactada. Haverá uma queda no total de bytes de resposta e na capacidade de processamento da transferência de dados de saída para conteúdo compactável.
Os registros do Media CDN incluem um campo compressionAlgorithmApplied no jsonPayload, que indica se a resposta foi compactada pelo balanceador de carga, assim como o tipo de compactação.
{
insertId: "1c02hw9g3gjay67"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
cacheId: "IAD-862d661f",
cacheStatus": "hit,stale",
compressionAlgorithmApplied: "br"
},
}
Faturamento
Quando uma resposta é compactada pelo Media CDN, as cobranças relevantes de transferência de dados de saída do cache ou da Internet são baseadas nos bytes compactados finais enviados para o cliente.
Se estiver sendo disponibilizada uma grande quantidade de respostas compactáveis, isso pode resultar em uma redução nas taxas mensais de transferência de dados de saída e no aumento do desempenho para os usuários finais.