Optimización del ahorro de contenido

El alcance, la ambición y la funcionalidad de nuestras aplicaciones web siguen aumentando, lo cual es bueno. Sin embargo, la implacable marcha hacia una Web más enriquecida está impulsando otra tendencia: la cantidad de datos que descarga cada aplicación sigue aumentando a un ritmo constante. Para ofrecer un excelente rendimiento, debemos optimizar la entrega de cada byte.

¿Cómo se ve una aplicación web moderna? El archivo HTTP puede ayudarnos a responder esta pregunta. El proyecto realiza un seguimiento de cómo se crea la Web mediante el rastreo periódico de los sitios más populares (más de 300,000 de la lista del millón de sitios principales de Alexa) y el registro y la agregación de análisis sobre la cantidad de recursos, tipos de contenido y otros metadatos para cada destino individual.

Tendencias de archivos HTTP

Percentil 50 Percentil 75 Percentil 90
HTML 13 KB 26 KB 54 KB
Imágenes 528 KB 1213 KB 2384 KB
JavaScript 207 KB 385 KB 587 KB
CSS 24 KB 53 KB 108 KB
Otra opción 282 KB 308 KB 353 KB
Total 1054 KB 1985 KB 3,486 KB

Los datos anteriores capturan la tendencia de crecimiento en 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 con la misma velocidad ni requieren la misma cantidad de datos, por lo que destacamos los diferentes cuantiles dentro de la distribución: 50 (mediana), 75 y 90.

La mediana de un sitio a principios de 2014 estaba compuesta por 75 solicitudes que suman 1,054 KB del total de bytes transferidos, y la cantidad total de bytes (y solicitudes) creció a un ritmo constante durante el año anterior. Esto en sí no debería ser sorprendente, pero tiene implicaciones importantes en el rendimiento: sí, las velocidades de Internet son cada vez más rápidas, pero lo hacen a velocidades diferentes en distintos 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 versiones para computadoras de escritorio, las aplicaciones web no requieren un proceso de instalación independiente: se ingresa la URL y ya estamos en funcionamiento. Esa es una función clave de la web. Sin embargo, para lograrlo, a menudo tenemos que recuperar decenas y, a veces, cientos de recursos diversos que pueden sumar megabytes de datos y deben combinarse en cientos de milisegundos para facilitar la experiencia web instantánea que buscamos.

Lograr una experiencia web instantánea teniendo en cuenta estos requisitos no es poca cosa, por lo que optimizar la eficiencia del contenido es fundamental: eliminar 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 descargas redundantes.