构建高性能的web站点

 Http的过程及步骤:

1、域名解析
2、建立连接
3、发送请求 
4、等待响应 (服务器处理)
5、接收数据 (网络传输)

针对性优化

1、 通过选择热的域名解析服务器或者设置TTL(就是一条域名解析记录在DNS服务器中的存留时间
2、受带宽,网络影响
3、本地cookie 会被上传到服务器,设置cookie的Domain可以防止一些不必要的网络传输。
4、后台优化篇
5、从接收数据到浏览器渲染响应,此阶段为前端优化的重要战场 。

前端优化主要手段:(代码方面)

1、     减少请求数:合并js文件,合并css文件,合并图片,利用css sprite技术,静态文件缓存。
2、     减少请求内容大小:HTML,JS 压缩,Gzip压缩。
3、     CSS 写在页面顶部,JS写在页面底部:原因(浏览器解析JS的时候会等其执行完毕后,再执行后续解析。IMG,CSS,其它HTML标签则不会)
4、     图片并且下载,利用多个图片服务器,充分利用浏览器的多连接(IE6:2,IE7-9:6,Firefox,Chrome:6),一般4个。
5、     避免使用css表达式,小心处理客户端代码减少 浏览器 repaint ,reflow

架构优化

1、     利用多线路CDN
2、     nginx  对于静态文件能更好的处理并发
3、     负载均衡
4、     反向代理服务器
5、     分布式文件系统

本地缓存

1、     设置Response 的 Last-Modified,通过接受 If-Modified-Since 文件是否需要从服务器返回最新内容,ResponseStatus=304 意味着告诉浏览器,可以使用本地缓存。
2、     设置Reseponse的max-age(缓存时间以秒为单位)或者 Expires(过期时间) 之后,浏览器不用询问服务器可直接使用本地缓存,意味着无需要建立连接。


服务器缓存
1、     Membercache

数据库优化
1、     数据库镜像(读写分离),会带来数据同步的问题。
2、     垂直分割
3、     水平分割
分割之后,去哪一个数据服务器读写数据成为最大的问题。
4、     SQL查询语句优化,索引优化。
a)     聚集索引
在物理上的位置是连接的,不会频繁更新的字段,经常被用来查询的,作范围查询的字段。会影响数据写入的速度,每一次写入数据位置会重排。
b)     非聚集索引
在逻辑上位置是连续的。
c)     复合索引
5、     SQL锁





posted on 2012-02-27 18:15  jesse.lew  阅读(178)  评论(0)    收藏  举报