Squid缓存动态页面 精确的缓存时间

Squid缓存动态页面

——精确的缓存时间

本文针对squid 2.6.STABLE22

本文作者:敖士伟 ikmb@163.com

 

一、动态页面本身

动态页面输出两个必要要素:

1、  Last-Modified

Last-Modified的时间可以不用很在意,它不会对缓存时间产生影响。

格式以asp页面为例:

Response.AddHeader "Last-Modified","Wed, 07 Jan 2010 10:35:56 GMT"

2、  Cache-Control

关键。指要缓存的时间。

格式以asp页面为例:

Response.CacheControl="max-age=120"

缓存两分钟。

 

二、关于精确的缓存时间

 

①:浏览器第一次请求,Squid无缓存对象;

②:向后端请求;

③:(重要!)

第一:后端响应Squid的请求;

第二:Squid收到后端响应,把对象放入cache,并把后端响应时后端web服务器的当前时间(time_A)作为对象缓存时间的下限;Web服务器响应请求时会在响应header里加一个Date值,表示响应请求的时间;

④:Squid响应浏览器;

⑤:(重要!)浏览器再次请求同一对象

       第一:Squid得到自己服务器当前时间(time_B);

       第二:计算响应headerage的值

       Age= time_B- time_A

       第三:判断过期

       如果age> max-age则重新从后端获取;

       如果age< max-age则后cache响应浏览器(HTTP/1.0 304 Not Modified)

    第四:如果web服务器的时间小于squid服务器时间,会使age偏大,使页面缓存时间小于页面max-age指定的时间;反之会使age偏小,使页面缓存时间大于页面max-age指定的时间‘

 

三、关于浏览器刷新

1IE刷新

IE刷新会请求头里添加If-Modified-Since及其它不与缓存相关的东西;

2FirefoxOpera、傲游等

它们的刷新会添加请求header里添加Cache-Control=max-age=0,这样导致squid重新从后端获取数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值