HTTP加载过程
1.Blocked:IE内核准备
2.DNSLookup:将域名转化为IP,如果本身世IP或DNS缓存存在则无此操作
3.Connect:和接续出的IP地址所指服务器建立TCP连接
4.Send:将HTTP请求发送至远程服务器
5.Wait:等待服务器响应请求
6.Recv:接收数据
web网络层面优化
1.减少DNS,每次DNS都需要一次网络往返,增加请求的延迟,而且在查询期间会阻塞请求(发送尽量少的数据)
2.开启DNS Prefetch,预先进行DNS加速页面加载,同时避免同域下多元素并发阻塞(使用CDN)
3.调整TCP的性能可以为服务端和客户端提供最佳的吞吐量和延迟。然而,应用程序如何使用每一个新的或者已建立TCP连接,对性能也有很大影响。(TCP连接复用)APP应用层面优化
Make Fewer HTTP Requests #减少HTTP请求
Use a Content Delivery Network #使用CDN
Optimize images #优化图像
Add Expires header (or Cache-control) #添加过期头或缓存控制
Gzip Components #开启Gzip插件
Put CSS at the Top #将CSS放在顶部
Move Scripts to the Bottom(inline too) #将脚本放在底部(内链接也是)
Avoid CSS Expressions #避免使用CSS表达式
Make JavaScript and CSS External #使用javascript和外部CSS
Minify JavaScript and CSS (inline too) #减小javascript和CSS(内链接也是)
Avoid Redirects #避免重定向
Remove Duplicate Scripts #删除重复的脚本
Configure ETags #配置ETags
Make AJAX Cacheable #使AJAX可缓存终端ISP层面优化
1.主动监控LocalDNS缓存策略失效或劫持,LocalDNS缓存策略不合理,导致CDN失效从而页面加载很慢,甚至无法访问 。
2.主动监控页面链路劫持,页面加载过程被强行插入多余请求,且这些请求往往性能极差,导致页面整体性能很慢
常用的WEB性能优化工具
- Firebug
- Chrome Devtools
- YSlow
- Fiddler
- HttpWatch
- WebPageTest
- Page Detailer
- HTTP Analyzer