1.缓存
2.DNS查询
- 减少DNS查询 减少域名
3.建立TCP连接
- 在http协议里加上一个请求头keep-alive;服务器会尽量复用TCP连接
- http2.0连接复用率更高,多路复用;
4.发送HTTP请求
- 文件数减少,合并文件
- 减少cookie体积
- cache-control 不发送请求,本地文件响应
- 浏览器会同时发送多个HTTP请求,1个域名最多发送4个请求;多个域名就可以发送更多的请求数量;跟上面DNS查询冲突需要权衡;适用于更多的文件;
5.接受响应
- Etag 304 服务器发现文件是最新的,就不发送响应而发送304,使用上次的文件;
- GZIP 在服务器上用Gzip压缩打包,浏览器解压。缺点:耗费浏览器的cpu
6.接受完成
7.DOCTYPE---- 要写对
8.逐行解析(阅读)
9.解析标签 (IE:直接渲染 chrome:等css解析完再渲染)
10.下载css (并行下载,串行解析)
- 放在CDN 内容分布网络
- 增加并发下载数
- CDN 没有cookie
- css放head(尽早下载),js放body后(先提供页面,获取节点)
11.下载js 同上
12.懒加载;预加载 ---节省流量,方便用户;通过js监听