Skip to content

1. HTTP/1.1 该如何优化

1.1 尽量避免发送 HTTP 请求

1.1.1 3xx,缓存

1.2 在需要发送 HTTP 请求时,如何减少请求次数

1.2.1 合并请求

如果把多个访问小文件的请求合并成一个大的请求,虽然传输的总资源还是一样,但是减少请求,也就意味着减少了重复发送的 HTTP 头部。 为了防止单个请求的阻塞,所以一般浏览器会同时发起 5-6 个请求,每一个请求都是不同的 TCP 连接,那么如果合并了请求,也就会减少 TCP 连接的数量,因而省去了 TCP 握手和慢启动过程耗费的时间。

但是这样的合并请求会带来新的问题,当大资源中的某一个小资源发生变化后,客户端必须重新下载整个完整的大资源文件,这显然带来了额外的网络消耗。

1.2.2 减少重定向次数

  • 重定向的工作交由代理服务器完成,就能减少 HTTP 请求次数了。意思就是让代理看到重定向请求之后去重定向,不再发回客户端,避免无脑转发。

  • 而且当代理服务器知晓了重定向规则后,可以进一步减少消息传递次数。意思是代理知道了什么时候需要进行重定向,减少向服务器询问重定向地址的次数。

1.2.3 按需请求

请求网页的时候,没必要把全部资源都获取到,通过 按需获取 的方式,来减少第一时间的 HTTP 请求次数。

1.3 减少服务器的 HTTP 响应的数据大小

1.3.1 有损压缩

1.3.2 无损压缩

经常用于压缩多媒体数据,比如音频、视频、图片。