Nuestras aplicaciones web siguen creciendo en alcance, ambición y funcionalidad, y eso es algo bueno. Sin embargo, la incesante marcha hacia una Web más rica está impulsando otra tendencia: la cantidad de datos que descarga cada aplicación sigue aumentando a un ritmo constante. Para ofrecer un gran rendimiento, debemos optimizar la entrega de cada byte.
¿Cómo se ve una aplicación web moderna? HTTP Archive puede ayudarnos a responder esta pregunta. El proyecto realiza un seguimiento de cómo se compila la Web rastreando periódicamente los sitios más populares (más de 300,000 de la lista Top 1M de Alexa) y registrando y agregando estadísticas sobre la cantidad de recursos, tipos de contenido y otros metadatos de cada destino individual.
Los datos anteriores capturan la tendencia de crecimiento de la cantidad de bytes descargados para destinos populares en la Web entre enero de 2013 y enero de 2014. Por supuesto, no todos los sitios crecen al mismo ritmo ni requieren la misma cantidad de datos, por lo que destacamos los diferentes cuartiles dentro de la distribución: el 50% (mediana), el 75% y el 90%.
Un sitio del percentil medio a principios de 2014 se compone de 75 solicitudes que suman 1,054 KB de bytes transferidos en total, y la cantidad total de bytes (y solicitudes) aumentó a un ritmo constante durante el año anterior. Esto, en sí, no debería ser tan sorprendente, pero tiene implicaciones importantes para el rendimiento: sí, las velocidades de Internet son cada vez más rápidas, pero lo son a diferentes velocidades en diferentes países, y muchos usuarios aún están sujetos a límites de datos y planes medidos costosos, especialmente en dispositivos móviles.
A diferencia de sus contrapartes para computadoras de escritorio, las aplicaciones web no requieren un proceso de instalación independiente: ingresa la URL y listo. Esa es una característica clave de la Web. Sin embargo, para que esto suceda, a menudo debemos recuperar decenas, y, en ocasiones, cientos de recursos diversos, que pueden sumar megabytes de datos y deben combinarse en cientos de milisegundos para facilitar la experiencia web instantánea a la que nos dirigimos.
Lograr una experiencia web instantánea teniendo en cuenta estos requisitos no es una tarea fácil, por lo que es fundamental optimizar la eficiencia del contenido: eliminar las descargas innecesarias, optimizar la codificación de transferencia de cada recurso a través de varias técnicas de compresión y aprovechar el almacenamiento en caché siempre que sea posible para eliminar las descargas redundantes.