Nossos aplicativos da Web continuam crescendo em escopo, ambição e funcionalidade, o que é ótimo. No entanto, a marcha implacável em direção a uma Web mais rica está impulsionando outra tendência: a quantidade de dados baixados por cada aplicativo continua aumentando em um ritmo constante. Para oferecer um ótimo desempenho, precisamos otimizar a entrega de cada byte.
Como é um aplicativo da Web moderno? O HTTP Archive pode nos ajudar a responder a essa pergunta. O projeto rastreia como a Web é criada, rastreando periodicamente os sites mais acessados (mais de 300.000 da lista Alexa Top 1M) e registrando e agregando análises sobre o número de recursos, tipos de conteúdo e outros metadados para cada destino individual.

Os dados acima mostram a tendência de crescimento no número de bytes baixados para destinos populares na Web entre janeiro de 2013 e janeiro de 2014. É claro que nem todos os sites crescem no mesmo ritmo ou exigem a mesma quantidade de dados. Por isso, destacamos os diferentes quantis na distribuição: 50º (mediana), 75º e 90º.
Um site mediano no início de 2014 é composto por 75 solicitações que somam 1.054 KB de bytes transferidos, e o número total de bytes (e solicitações) cresceu em um ritmo constante ao longo do ano anterior. Isso não é surpreendente, mas tem implicações importantes no desempenho: sim, as velocidades da internet estão aumentando, mas em taxas diferentes em cada país, e muitos usuários ainda estão sujeitos a limites de dados e planos limitados caros, especialmente em dispositivos móveis.
Ao contrário dos aplicativos para computador, os aplicativos da Web não exigem um processo de instalação separado: basta inserir o URL para que eles comecem a funcionar. Esse é um recurso fundamental da Web. No entanto, para que isso aconteça, muitas vezes precisamos buscar dezenas e, às vezes, centenas de recursos variados, que podem somar megabytes de dados e precisam ser reunidos em centenas de milissegundos para facilitar a experiência instantânea na Web que buscamos.
Criar uma experiência instantânea na Web considerando esses requisitos não é uma tarefa fácil. Por isso, é fundamental otimizar a eficiência do conteúdo: eliminar downloads desnecessários, otimizar a codificação de transferência de cada recurso usando várias técnicas de compactação e aproveitar o armazenamento em cache sempre que possível para eliminar downloads redundantes.