Nossos aplicativos da Web continuam a crescer em escopo, ambição e funcionalidade. Isso é bom. No entanto, a busca incessante em direção a uma Web mais avançada está impulsionando outra tendência: a quantidade de dados baixados por cada aplicativo continua a crescer em um ritmo constante. Para oferecer um ótimo desempenho, precisamos otimizar a entrega de cada byte.
Qual é a aparência de um aplicativo da Web moderno? O HTTP Archive pode nos ajudar a responder a essa pergunta. O projeto acompanha como a Web é construída, rastreando periodicamente os sites mais populares (mais de 300.000 da lista de um milhão de principais da Alexa) 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 capturam a tendência de crescimento do número de bytes transferidos por download para destinos populares na Web entre janeiro de 2013 e janeiro de 2014. É claro que nem todos os locais crescem na mesma taxa ou exigem a mesma quantidade de dados. Por isso, destacamos os diferentes quantis na distribuição: 50o (mediana), 75o e 90o.
Um site médio no início de 2014 é composto por 75 solicitações que totalizam 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 é tão surpreendente, mas tem implicações importantes para o desempenho. Sim, as velocidades da Internet estão aumentando, mas em diferentes países, 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 desktop, os aplicativos da Web não exigem um processo de instalação separado: insira o URL e vamos começar a trabalhar. Esse é um recurso importante da Web. No entanto, para que isso aconteça, muitas vezes precisamos buscar dezenas e, às vezes, centenas de recursos variados, os quais podem chegar a megabytes de dados e devem ser juntos em centenas de milissegundos para facilitar a experiência instantânea da Web que queremos.
Conseguir uma experiência instantânea na Web considerando esses requisitos não é uma tarefa simples, e é por isso que otimizar a eficiência do conteúdo é fundamental: eliminar downloads desnecessários, otimizar a codificação de transferência de cada recurso por meio de várias técnicas de compactação e aproveitar o armazenamento em cache sempre que possível para eliminar downloads redundantes.