Skip to content

网络层面优化

由资源文件请求的时间线 Timing 分析

例子

一个文件请求的时间线例如: NetworkApiTiming

Queuing 就是排队时间,造成排队的原因:

  • 资源优先级,比如html,css,js的优先级高于图片
  • http 1.1 浏览器为每个域名最多维护6个TCP连接
  • 发请求的时候正在进行磁盘空间分配

Stalled 就是请求被挂起或者说停滞

Initial connection 就是建立连接的时间

SSL 就是 SSL握手时间

Request time 就是请求时间

Waiting for server response 就是等待响应的时间

Content download 就是下载内容时间

优化思路

解决排队时间就是:

  • 域名分片技术,一个站点使用多个域名,那样就可以超过6个TCP连接了
  • 升级http2.0,http2.0可以同时建立多个TCP连接,从而解决排队时间

响应时间优化:

  • 静态资源缓存,压缩,合并,CDN,减小静态资源大小(去除注释,log等)
  • 去除无关 Cookie
  • 服务器带宽升级
  • 后端优化,SQL查询,逻辑处理

升级http

升级到 2.0,主要原因是http 1.1 会有6个TCP连接限制,而2.0有多路复用,只需要建立一个TCP连接。

3.0 的独特优势

http1和2都使用的TCP协议,有队头阻塞的问题,而http3.0使用了基于 UDP 的 QUIC 协议,可以保证可靠传输,支持流量控制,多路复用,TLS1.3加密,没有队头阻塞问题。

队头阻塞是由于TCP传输过程中发生丢包,需要重新发送,而造成数据接收延迟,因为数据是按顺序传输的, 如果一段完整的数据被丢包,那么后面的数据就会因为队头阻塞而延迟接收。 根据测试如果丢包率超过2%,那么http2.0性能会比http1.1性能差。因为http1.1最多有6个TCP连接,阻塞了一个其它的还能用,而http2.0只有一个TCP连接。

但是 http3.0 没有普及,原因是浏览器等软件支持不够完善,系统内核兼容不够好,网络中间传输设备优化不够好导致丢包率高。

Released under the ISC License.