18 传输链路,优化HTTP传输速度的小技巧
你好,我是周志明。
在经过了客户端缓存的节流和DNS服务的解析指引以后,程序发出的请求流量就正式离开了客户端,踏上以服务器为目的地的旅途了。而这个过程就是我们今天这节课要讨论的主角:传输链路。
以优化链路传输为目的的前端设计原则未来或许不再适用
可能不少人的第一直觉都会认为,传输链路是完全不受开发者控制的因素,觉得网络路由跳点的数量、运营商铺设线路的质量,已经决定了线路带宽的大小、速率的高低。不过事实并非如此,程序发出的请求能否与应用层、传输层协议提倡的方式相匹配,对传输的效率也会有非常大的影响。
最容易体现出这点的,就是那些前端网页的优化技巧。我们只要简单搜索一下,就能找到很多以优化链路传输为目的的前端设计原则,比如经典的雅虎YSlow-23条规则中,就涵盖了很多与传输相关的内容。
下面我来给你简单举几个例子。
- Minimize HTTP Requests
即减少请求数量:对于客户端发出的请求,服务器每次都需要建立通信链路进行数据传输,这些开销很昂贵,所以减少请求的数量,就可以有效地提高访问性能。如果你是做前端开发的,那你可能就听说过下面这几种减少请求数量的手段:
a. 雪碧图(CSS Sprites)
b. CSS、JS文件合并/内联(Concatenation / Inline)
c. 分段文档(Multipart Document)
d. 媒体(图片、音频)内联(Data Base64 URI)
e. 合并Ajax请求(Batch Ajax Request)
f. ……