Nossos aplicativos da Web continuam crescendo em escopo, ambição e funcionalidade, e isso é bom. No entanto, a marcha incessante em direção a uma Web mais rica está impulsionando outra tendência: a quantidade de dados transferidos por download por cada aplicativo continua aumentando a um ritmo constante. Para oferecer um bom desempenho, precisamos otimizar o envio de cada byte.
Como é um aplicativo da Web moderno? O HTTP Archive pode ajudar a responder a essa pergunta. O projeto rastreia como a Web é construída rastreando periodicamente os sites mais populares (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 do número de bytes transferidos para destinos populares na Web entre janeiro de 2013 e janeiro de 2014. É claro que nem todo site cresce na mesma taxa ou exige a mesma quantidade de dados. Por isso, estamos destacando os diferentes quartis 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 de forma constante ao longo do ano anterior. Isso não é uma surpresa, mas tem implicações importantes para a performance: sim, as velocidades de Internet estão aumentando, mas em taxas diferentes em diferentes países, e muitos usuários ainda estão sujeitos a limites de dados e planos 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 e pronto. Esse é um recurso importante da Web. No entanto, para que isso aconteça, muitas vezes precisamos buscar dezenas, e às vezes centenas, de vários recursos, que podem somar megabytes de dados e precisam se reunir em centenas de milissegundos para facilitar a experiência da Web instantânea que queremos.
Alcançar uma experiência da Web instantânea com base nesses 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 com várias técnicas de compactação e aproveitar o armazenamento em cache sempre que possível para eliminar downloads redundantes.