本文内容摘抄自李智慧的《大型网站技术架构:核心原理与案例分析》一书。内容整理如有问题,请联系我或在下方评论
web前端性能优化
1.浏览器方面考虑
1.1减少http的请求(js,css,images雪碧图)
主要手段是合并css、合并javascipt,将需要的css和js合并成一个文件,让浏览器一次请求。
1.2使用浏览器缓存
对于一个网站而言,css,js,logo,图标这些静态资源文件的更新频率比较低,而这些都是http请求需要的,讲这些文件缓存在浏览器中,可以极好的改善性能。
1.3减少cookie传输(cookie的value老版本能存20个 新版本能存50个)
一方面cookie包含在每次请求和响应中,大大的cookie会严重的影响数据的传输,所以将哪些数据写入cookie需要慎重考虑尽量减少cookie的传输的数据量。
另一方面对于静态资源的访问,发送cookie没有意义,可以考虑静态资源使用独立域名访问,减少cookie传输的次数。
1.4启用压缩
在服务器端和浏览器中对文件进行压缩,可以减少通信传输的数据量,文件的压缩效率达到百分之八十以上,但是压缩对服务器和浏览器有一定的压力,在网速良好而服务器资源不足的情况下权衡考虑。
1.5css放最上面 js放最下面
浏览器在下载完全部css之后才对整个页面进行渲染,最好的做法是将css放在上面,让浏览器尽快的下载完。如果将js放在上面,浏览器会首先加载js,这样就会造成阻塞,所以讲css放在上面 js放在下面。
2.CDN(内容分发网络) 本质为一个缓存 部署在网络运营商的机房里
2.1浏览器优化的好处:
2.1.1 节省计算时间
2.1.2 节省读取时间
2.1.13 节省传输时间 <-- 节省的时间最长
2.2浏览器优化的坏处:
2.2.1 买买买
2.2.2 数据不一致引起脏读(脏读就是指当数据库的数据更新了以后,而内存没有实时更新,所以造成了数据不一致,这就是脏读。)
2.CDN加速
2.1流程:CDN(内容分发网络)的本质是一个缓存,而且将数据缓存在离用户最近的地方(部署在网络运营商的机房里),最快速度获取数据,即网络访问第一跳。
由于CND部署在网络运营商的机房里,这些运营商又是终端用户的服务提供商,用户请求直接到CDN,当CDN存在浏览器请求的资源时,以最快速度返回给浏览器,减少数据中心的负载。CDN一般缓存的是静态文件。
2.2 优点:最短路径返回响应,加快用户的访问速度,减少负载压力
2.3 缺点:因为他是缓存文件,如果在网站更新了内容,部分电脑,可能不会实时的更新过来,它需要将CDN那台计算机的内容也更新了,客户的显示器上内容才是最新的,这个时间可能需要几小时,甚至半天.所以对于经常更新的网站,并不是很适合用CDN加速.
3.反向代理
和传统代理服务器可以保护浏览器安全一样,反向代理也有保护网站安全的作用,来自互联网的访问请求必须经过代理服务器,相当于在web服务器和可能的网络攻击之间建立了一个屏障。
反向代理也可以实现负载均衡的功能,而通过均衡构建的应用集群可以提高系统总体处理的能力,,进而改善网站高并发情况下的性能。
应用服务器的性能优化
1.分布式缓存
1.1缓存的基本原理
定义:缓存是指数据存储在相对较高访问速度的存储介质中。