网站性能及访问速度无论对用户抑或搜索引擎都是很重要的,提高网站速度有助于蜘蛛爬取网页更多页面量、提升收录及SEO流量。
要了解网站速度的提升首先我们需要了解用户或搜索引擎是如何访问网站的,有哪些步骤过程以及相关的优化方法。用户访问网站基本需要四个步骤,在“DNS解析过程原理”中曾经提到过,具体如下:
1)让用户计算机与Web服务器计算机取得连接,该步骤为DNS解析过程;
2)Web服务器将用户的请求信息接入,该步骤为用户接入服务器过程;
3)对于静态页面,服务器接收用户请求信息并查找该静态页面文件;对于动态页面,服务器将接收的用户请求信息发送给应用程序服务器,应用程序服务器读取该动态页面代码并生成页面,然后将该静态页面传递回Web服务器,该步骤为服务器查找或生成文件过程;
4)服务器将查找到或生成的页面文件传递给用户计算机,即用户下载网页文件过程。
1、DNS解析
DNS解析所消耗的时间主要取决于DNS服务器的性能及用户到DNS服务器的网络状况,另外,DNS记录还可能会缓存在互联网接入服务商的各级DNS服务器上,这主要取决于DNS服务器的缓存量及DNS记录和TTL值。
针对DNS解析的优化包括:
1)选择性能较好的DNS服务器
配置好、用户量少的DNS服务器速度一般较快,而IDC服务商免费提供的DNS服务器很多情况下是不给力的。
2)优化用户到DNS服务器的网络状况
在本项中可以控制的如尽量缩短用户到DNS服务器的距离,尽量让用户的网络线程与服务器的网络线程相匹配等。
3)缓存优化
尽量选择热门的域名解析商,越热门的域名解析商其缓存量及时间较大,缓存可以替代DNS服务器解析的一些步骤从而缩短时间。另外,DNS记录的TTL值增加也会延长缓存时间,使用CNAME记录也可以避免DNS服务器记录查找的部分步骤从而缩短时间。
2、服务器建立连接
服务器建立连接的时间主要取决于Web服务器能否快速的接入用户的请求,通常情况下,当Web服务器的同时连接数达到预设限制时,Web服务器可能会对新的请求拒绝接入。而对于Apache这样的多进程模型,当进程数不断增多时,由于上下文切换的时间开销也随之增加,所以建立连接的平均时间也逐渐开始延长。
3、服务器计算
对于静态文件的访问,这部分时间主要用于文件的定位,如果是较小的文件,那么还会包括文件读取时间,而如果是较大的文件,通常Web服务器会使用sendfile系统调用来直接传送文件内容到网络设备,所以读取文件的时间并没有算入这里的服务器计算时间,而是归入内容下载时间。
对于动态内容的访问,这里的服务器计算时间具有非常重要的参考价值,要减少这部分时间并不那么容易,你可以使用缓存等策略,更加详细的优化方法我们会在以后深入介绍。
4、内容下载
内容下载时间主要取决于用户带宽、服务器带宽、文件大小、文件数量等。对于优化来讲,我们可以提升服务器带宽,减少文件数量,优化文件大小等。如合并CSS和JS,减少DOM和iframe,使用CDN分发技术,使用Gzip压缩,使用Css
Sprite,拆分域名增加并行下载量,图片大小优化等。