网页加速:开启服务器文件缓存

本文属于《高性能web前端优化指南》系列文章。

我的上两篇文章:尽量减少http请求数据量尽量实现网页的静态化实现的主要目的是加快用户第一次访问你网页时的载入速度。这对流量来源主要靠搜索引擎的网站来说很重要——因为你的用户多半都是第一次来,如果网页加载快,也会让用户感觉良好。

而我这篇文章要说的是,如何加快用户再次访问你网页时的加载速度

相信经常上网的人都知道:网页第一次打开速度会慢些,但你刷新时或重新打开此网页会觉得速度快很多——这就是缓存的作用。

缓存网页,就是把网页上的文字、图片、flash甚至视频都保存到本地,在你下次访问此网页时,就直接从本地调用相关网页文件。这样无疑速度会快很多的,因为减少了很多下载过程。

说道网页缓存,静态网页无疑比动态网页更有优势。浏览器在试图访问动态网页时,优先考虑的是去服务器上重读一次——因为动态网页很可能文件有更改;而访问静态网页时,他就知道,有现成的就用现成的….

一般浏览器访问网页时都会自动缓存可以缓存的文件,但我们可以改动服务器设置,让缓存做的更好,比如让图片等体积比较大而改动几率比较小的文件缓存时间更长一些。

Apache服务器为例,可以通过直接修改.htaccess文件来优化缓存

#开启缓存
<IfModule mod_expires.c>
ExpiresActive On
#图片及flash,flv等缓存一个月
<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf)$”>
Header set Cache-Control “max-age=2592000”
</FilesMatch>
ExpiresDefault A600
#缓存.ico文件为2592000秒,即一个月,后同
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/css A604800
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType text/plain A86400
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType video/x-flv A2592000
ExpiresByType application/pdf A2592000
ExpiresByType text/html A600
</IfModule>
一般图片,视频,flash等文件缓存时间可以设置的更长一些,因为他们更改少。但html,js,css等代码文件建议缓存时间设短一点,道理你懂的。

注意:手动开启缓存的缺点

比如本站jo2.org就设置了以上的代码,并且我还启用了一个wordpress缓存插件,于是我就发现一个问题:当更改网页后(html及css等),刷新网页看不到效果,依旧是以前的样子。如果你正在改代码的时候有人访问你的网站了,说不定你的不完整版网页会占据他的缓存很长时间….让他以为你的网站真烂,布局都会错位。

凡事有利必有弊嘛,不过这个缺点是可以克服的,我们可以在更改网页后手动清理一下缓存文件就行了。具体方法各异,没什么好说的。

以上在Apache服务器开启缓存的办法,还是我google搜到的,本人也不是很懂,相信很多学习服务器知识的同学比我更懂的多,大家尽量在技术人员的帮助下更改网站咯,不然出了问题我也付不起责。

其他服务器开启及优化缓存的方法,比如IIS什么的,大家各扫门前雪,自己搜索吧。我都说了,此系列文章不是技术教程。

 

5 评论

  1. 还是很有必要开启缓存的,我的站是nginx服务器驱动,把图片都缓存上了,不然每次都要加载很多图片~

发表评论

电子邮件地址不会被公开。