控制页面缓冲
meta标签可以设置网页到期的时间,也就是说,当你在Internet Explorer 浏览器中设置浏览网页时首先查看本地缓冲里的页面,那么当浏览某一网页,而本地缓冲又有时,那么浏览器会自动浏览缓冲区里的页面,直到meta中设置的时间到期,这时候,浏览器才会去取得新页面。
设置html页面缓存方法:
静态的html页面想要设置使用缓存:
通过HTTP的META设置expires和cache-control
上述设置仅为举例,实际使用其一即可。这样写的话仅对该网页有效,对网页中的图片或其他请求无效,并不会做任何cache。 参数说明: max-age 指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。 Expires 表示存在时间,允许客户端在这个时间之前不去检查(发请求),等同max-age的 效果。但是如果同时存在,则被Cache-Control的max-age覆盖。 Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
动态页面设置缓冲方法:
要在后台代码段
Response.AddHeader("cache-control","max-age=时间(单位:秒)")或Response.Expires=时间(单位:分)来启用缓存。如果用Response.AddHeader("expires","utc时刻")来设置Expires的话,cache-control的优先级比expires高,
就是说如果设置了cache-control,那么expires设置的值就被覆盖掉。如果是用Response.Expires设置的话就不受这个约束。
对网页中的图片或其他请求服务器端缓冲设置
apache静态文件缓存时间设置
如果要对文件添加cache可以通过apache的mod_expire模块,写法为
DocumentRoot /www/jsjtt.com
ServerName jsjtt.com
ExpiresActive On
ExpiresDefault "access plus 1 days"
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 1 days"
记得ExpiresActive设为On,我起先没设置On,似乎怎样YSlow都查不到缓存机制。这样添加的话就是默认所有的。如果要针对个别MIME类型则可以: ExpiresByType image/gif "access plus 5 hours 3 minutes" 见
server {
listen 80;
server_name jsjtt.com;
root /www/jsjtt.com;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
}
代表图片默认缓存30天
JS和CSS默认缓存1小时