如何让网站速度提升10倍!(五):控制浏览器缓存

如何让网站速度提升10倍!(五):控制浏览器缓存

经验文章nimo972025-03-16 15:48:2613A+A-

浏览器缓存不会加速客户端与服务器端的速率,但是因为减少了实际传输的数据量,所以会加速网站的载入速度并且有效的降低流量占用。(降低流量占用对于采用CDN加速,还是按照流量计费的很有帮助)

对于apache服务器,可以通过mod_expires mod_headers 这两个模块来设置缓存时间,也就是告诉浏览器多长时间缓存过期,请求新的文件。下面的代码放到.htaacess文件中就可以,因此虚拟主机就可以使用。

这里是一个比较灵活的设置各种文件缓存时间的代码:

# 启用Expires 并设置默认的缓存时间为0

ExpiresActive On

ExpiresDefault A0

# Set up caching on media files for 1 year (forever?)

ExpiresDefault A29030400

Header append Cache-Control "public"

# Set up caching on media files for 1 week

ExpiresDefault A604800

Header append Cache-Control "public"

# Set up 2 Hour caching on commonly updated files

ExpiresDefault A7200

Header append Cache-Control "proxy-revalidate"

# Force no caching for dynamic files

ExpiresActive Off

Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"

Header set Pragma "no-cache"

这个设置使用了mod_expires mod_headers 两个模块,大家在使用时可以根据自己的情况设置每种文件的缓存。

mod_expires 也可以按照下面的格式设置每种MIME类型的缓存时间,不过不如上面的方便

ExpiresActive on|off

ExpiresDefault

ExpiresByType type/encoding

另外也可以通过mod_headers 进行设置:

# 1 YEAR

Header set Cache-Control "max-age=29030400, public"

# 1 WEEK

Header set Cache-Control "max-age=604800, public"

# 3 HOUR

Header set Cache-Control "max-age=10800"

# NEVER CACHE

Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"

可以通过FireBug+YSlow检查是否设置成功了,打开Components ,点击查看对应元素的Response Headers,如下:

从上图可以看到 Cache-Control max-age=900, proxy-revalidate ,也就是这个页面的缓存时间设置为900秒。使用其他可以查看header信息的软件也可以检测,不过FireBug+YSlow可以说是网站开发的必备工具,推荐大家使用。

缓存的设置还有很多方法,例如通过ASP PHP也可以设置,当然在服务器上设置是相对简单的事情,也灵活的多。IIS服务器的设置我不熟悉,就不讲了。

大家应该仔细检查下自己网站的缓存设置是否符合需求,这个对于加速用户打开网站速度,节省带宽,降低服务器资源占用都有好处。

系列文章:

让你的网站速度提升10倍!(四):压缩~~~

让你的网站速度提升10倍!(三):给页面瘦身

让你的网站速度提升10倍!(二):分析网络问题

让你的网站速度提升10倍!系列之一

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7