Наши веб-приложения продолжают расти в своих масштабах, амбициях и функциональности — и это хорошо. Однако неустанное движение к более богатой сети приводит к другой тенденции: объем данных, загружаемых каждым приложением, продолжает стабильно увеличиваться. Чтобы обеспечить отличную производительность, нам необходимо оптимизировать доставку каждого байта!
Как выглядит современное веб-приложение? HTTP Archive может помочь нам ответить на этот вопрос. Проект отслеживает, как строится сеть, периодически сканируя самые популярные сайты (более 300 000 из списка Alexa Top 1M), а также записывая и агрегируя аналитику о количестве ресурсов, типах контента и других метаданных для каждого отдельного места назначения.
Приведенные выше данные отражают тенденцию роста количества загруженных байтов для популярных направлений в Интернете в период с января 2013 по январь 2014 года. Конечно, не каждый сайт растет с одинаковой скоростью или требует одинакового объема данных, поэтому мы выделяют различные квантили в распределении: 50-й (медиана), 75-й и 90-й.
Медианный сайт в начале 2014 года состоит из 75 запросов, что в сумме составляет 1054 КБ общего количества переданных байтов, а общее количество байтов (и запросов) стабильно росло на протяжении всего предыдущего года. Это само по себе не должно быть таким уж удивительным, но оно влечет за собой важные последствия для производительности: да, скорость интернета увеличивается, но в разных странах она увеличивается с разной скоростью, и на многих пользователей по-прежнему действуют ограничения на передачу данных и дорогие счетчики. планы - особенно на мобильных устройствах.
В отличие от настольных аналогов, веб-приложения не требуют отдельного процесса установки: введите URL-адрес, и мы готовы к работе — это ключевая особенность Интернета. Однако для того, чтобы это произошло, нам часто приходится получать десятки, а иногда и сотни различных ресурсов, каждый из которых может составлять мегабайты данных и должен объединяться за сотни миллисекунд, чтобы обеспечить мгновенное взаимодействие с Интернетом, к которому мы стремимся.
Достижение мгновенного взаимодействия с Интернетом в свете этих требований — непростая задача, поэтому оптимизация эффективности контента имеет решающее значение: устранение ненужных загрузок, оптимизация кодирования передачи каждого ресурса с помощью различных методов сжатия и использование кэширования, когда это возможно, для устранения избыточных загрузок.