我们的 Web 应用在范围、抱负和功能方面不断发展壮大,这是好事。不过,不断追求更丰富的网络体验的趋势正在推动另一个趋势:每个应用下载的数据量继续以稳定的速度增加。为了提供出色的性能,我们需要优化每个字节的传送!
现代 Web 应用是什么样的?HTTP 归档可以帮助我们回答这个问题。该项目通过定期抓取最热门的网站(Alexa 前 100 万名单中的 30 万多个网站),并记录和汇总每个目标网址的资源数量、内容类型和其他元数据的分析数据,从而跟踪网络的构建方式。
上述数据反映了 2013 年 1 月至 2014 年 1 月期间热门网络目的地的下载字节数增长趋势。当然,并非每个网站的增长速度或所需数据量都相同,因此我们突出显示了分布中的不同百分位:第 50 位(中位数)、第 75 位和第 90 位。
2014 年初,中位数网站由 75 个请求组成,总传输字节数为 1054 KB,并且在整个去年,字节总数(和请求数)都以稳定的速度增长。这本身并不令人惊讶,但确实具有重要的性能影响:虽然互联网速度越来越快,但不同国家/地区的速度提升速度各不相同,而且许多用户仍然受到流量上限和昂贵的按流量计费套餐的限制,尤其是在移动设备上。
与桌面版应用不同,Web 应用不需要单独的安装流程:只需输入网址,即可立即运行,这是 Web 的一大特色。不过,为了实现这一点,我们通常必须提取数十个(有时甚至数百个)各种资源,所有这些资源加起来可能有几兆字节的数据,并且必须在几百毫秒内汇总到一起,以便提供我们所追求的即时 Web 体验。
鉴于这些要求,实现即时 Web 体验并非易事,因此优化内容效率至关重要:消除不必要的下载、通过各种压缩技术优化每个资源的传输编码,并尽可能利用缓存来消除冗余下载。