两步明显提高网站访问速度
第一步:HTTP头设置,采取静态文件(js、css、html、图片等)缓存,大大提高页面访问速度,设置如下(以下设置是针对IIS6的,因为其他东东没接触过,囧):
1、IIS->网站->选择一个站点->右键->属性
2、选项卡中选择 HTTP头->启用内容过期->此时间段后过期,默认是1天,这个看你的需要了
原理:用Sniffer可以看到,当用户第一次请求该态页面时,他会自动对静态文件的HTTP头进行处理,增加了Cache-Control:max-age,当用户第二次再请求该页面,浏览器会先判断本地文件是否过期,如
果没过期就直接从本地读取,不向服务器发送任何请求。该做法只针对静态文件有效,例如:js、css、html、图片等,如果按F5刷新页面,浏览器会忽略本地的缓存文件。
优点:大幅度减少请求次数和带宽
缺点:假如服务器的文件更新了,本地文件没有过期的话也不会更新,除非按F5刷新页面。
解决方法:当更新静态文件js、css、图片时,采用版本控制,例如:base.js更改后改为base1.0.js,不过这样就要把之前所有引用该文件的地方都要作更改。或者可以把缓存时间设置小一点,1、2天比较适合
第二步:HTTP流压缩,采用GZIP压缩,可以大大减少页面的大小,减少带宽,操作如下:
1、IIS->网站->属性->服务
2、选项卡中选择 HTTP压缩->"压缩应用程序文件"和"压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制"
3、IIS->Web服务扩展->增加一个新的Web服务扩展
4、在"新建Web服务扩展"框中输入扩展名"HTTP Compression",添加"要求的文件"为C:\WINDOWS\system32\inetsrv\gzip.dll,选中"设置扩展状态为允许"
5、使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),找到Location ="/LM/W3SVC/Filters/Compression/gzip"
6、如果需要压缩动态文件,则将HcDoDynamicCompression设置为"TRUE",并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx、shtml、asp等等
7、如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为"TRUE",并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如html、js、css、xml等等
8、HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数字越小压缩率越低,性能消耗越小,反之数字越大压缩率越高,性能消耗越大;最佳性价比为9
9、打开 开始->管理工具->服务,停止"IIS Admin Service"后,保存MetaBase.xml文件,如果不停止的话是不能保存的
10、重新启动IIS
原理:在IIS服务器上启用IIS压缩功能之后,在IIS服务器把页面内容发送给浏览器之前,会在服务器上先把内容进行压缩,然后发送压缩后的数据,浏览器接收到数据后,会自动进行解压,然后显示。由于在网络上传输的数据被压缩了,所以可以将页面内容更快的传送到浏览器,提高页面浏览速度
优点:减少带宽消耗,提高访问速度
缺点:
1、CPU资源会有一定的消耗,不过这个消耗对于现在的CPU来说影响不大
2、需要支持gzip的浏览器才能使用,不过现在大部分浏览器都支持的,所以基本可以放心使用。
3、对于图片、压缩文件等无法再压缩的文件进行gzip压缩的话,不但不会减少带宽,反而会增加服务器负担和影响响应速度
注意:假如服务器上下载文件,是使用ASPX页面输出HTTP流的方法的话,如果进行了ASPX动态页面压缩,则GZIP压缩也等于对压缩文件进行压缩,这样会严重影响下载时的响应速度,即可能你点击了下载文件的连接,他要等上1、2分钟甚至更久才会有个保存文件框让你下载
经过以上两步操作,我们网站的访问速度提高非常大,原来打开一个页面需要30秒或以上,现在只需要10秒以内