本文链接: http://www.php-oa.com/2008/09/05/squidmaxageexpires.html
主要重点在于我们要明白一个相对(Expires)一个绝对(max-age).
分别
max-age
max-age是HTTP/1.1中,他是指我们的web中的文件被用户访问(请求)后的存活时间,是个相对的值,相对Request_time(请求时间).
例如:A.html 用户请求时间是18:00,max-age设置的是600的话,相当18:00+600秒过期,也就是相对18:00的时间后面600秒后过期.默认的max-age是由Expires算出来的.
Expires
Expires是HTTP/1.0中的,它比max-age要麻烦点.Expires指定的时间分下面二种,这个主要考虑到apache中设置是A还是M.
1.相对文件的最后访问时间(Atime)
当Apache使用A时间来做Expires时.这样设置时.他就和max-age的值相等,因为max-age是相对文件的请求时间(Atime).
例如:ExpiresByType text/html A600
由上面我们得知,Apache设置Atime时,过期为600秒时.
Expires=18:00+600=18:10
max-age=18:00+600=18:10
得出:Expires=max-age
2.绝对修改时间(MTime)
这又分二种情况,我们来拿A.htm来讲
假设文件的建立时间为18:00.
当用户Request请求为18:00时,过期为600秒
Expires=18:00+600=18:10
max-age=18:00+600=18:10
得出:Expires等于max-age
当用户Request请求为18:20时,过期为600秒
Expires=18:00+600=18:10(因为设置成Mtime时,时间由文件建立时间来决定)
max-age=18:20+600=18:30
得出:Expires不等于max-age
另外要注意,象上面这种清况时,max-age优化,所以过期时间为18:30.
在squid,如果没有指明expires和max-age这二个的截止时间,那它就会使用发式截止时间,如参考 Last-Modified.
其实上面的max-age=18:20+600=18:30,这样算max-age不对,真实环境要这样算,max-age过期为http头中的Age=600过期.
注:Age域值是缓存服务器估计从响应产生或被原始服务器重新证实以来的总时间.age的值是缓存服务器算出来的,原始服务器是没有的.
分享到:
相关推荐
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
离线安装包,亲测可用
squid-3.2.1-20120908-r11653
python库。 资源全名:squid_py-0.6.13-py2.py3-none-any.whl
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
Linux运维-6.集群-集群视频-5、Squid缓存、代理服务-18、Squid简介.mp4
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
Linux运维-6.集群-集群视频-5、Squid缓存、代理服务-19、Squid传统模式、透明模
Linux运维-6.集群-集群视频-5、Squid缓存、代理服务-20、Squid 反向代理、ACL访问控
Squid-cache 3.1.19是一个稳定版本的squid,3.x的版本是对2.x稳定版本使用c++语言进行的重构,可读比2.x性强大很多。
squid-2.7.STABLE9,squid用C写的最后一个版本。稳定,高效。是学习squid不错的选择,在ubuntu,redhat都使用过了。
windows版squid-2.7.STABLE8-bin.zip。教程自己上网找吧。
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
squid3.5-windows-64位,好不容易从官网下载下来的。http://squid.diladele.com/
nginx+apache+mysql+php+memcached+squid搭建门户网站
Squid v3.8.0.0-GP for Android 让您使用手写笔或手指像在真的纸上一样书写
squid-2.6.STABLE20-bin.zip
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装