跳到主要内容

基于URL优化

2024年04月28日
柏拉文
越努力,越幸运

一、认识


二、URL 解析


三、查询缓存


四、DNS 解析


4.1 DNS 预解析

DNS 预解析: 使用 CDN 缓存,加快解析 CDN 寻找到目标地址(dns-prefetch)

五、等待TCP队列


六、建立TCP连接


6.1 CDN 加速

CDN 加速, 使用内容分发网络,让用户更快的获取到所需内容

6.2 启用压缩

启用压缩,在 http 协议中,使用类似 Gzip 压缩的方案,对服务器资源不足的时候进行权衡。

6.3 使用 HTTP2

使用 HTTP2协议HTTP2.0 针对 1.0 优化了很多东西,包括异步连接复用,头压缩等,使传输更快。

七、发送 HTTP 请求


7.1 使用长连接

使用长连接,默认使用长连接,复用一个 TCP 通道。短连接的话每次连接后会销毁。

7.2 减少 HTTP 请求

减少 HTTP 请求, 每个请求从创建到销毁都会消耗很多资源和时间,减少请求就可以相对来说更快展示内容。

7.3 使用 HTTP 缓存

使用 HTTP 缓存, 缓存原则是越多越好,越久越好,让客户端发送更少的请求,直接从本地获取,加快性能

减少 Cookie 请求,针对非必要数据(静态资源)请求,进行跨域隔离,减少传输内容大小。

7.5 预加载请求

预加载请求,针对一些业务中场景可预加载的内容,提前加载。在之后的用户操作中更少的请求,更快的响应。

7.6 合理选择 get/post

合理选择 get/post,在 http 定义的时候,get 本质上就是获取数据, post 是发送数据, get 可以在一个 TCP 报文完成请求,但是 post 先发 header, 再发送数据。

7.7 减小静态资源文件体积

八、服务器处理请求


九、服务端响应请求


9.1 MySQL 慢查询优化

9.2 Mongodb 慢查询优化

十、断开TCP连接


十一、处理响应


十二、构建DOM树


十三、样式计算


十四、布局阶段


十五、分层


十六、绘制


十七、分块


十八、光栅化


十九、合成


参考资料


性能优化