求教max-age值为何为负...

求教max-age值为何为负...

有问题的 max-age=-4116718
HTTP/1.1 200 OK
Date: Fri, 04 Jan 2008 04:14:03 GMT
Server: Apache/2.0.59 (Unix) DAV/2 PHP/4.4.2
Last-Modified: Fri, 16 Nov 2007 12:42:05 GMT
ETag: "41d82f-36e1-203e8140"
Accept-Ranges: bytes
Content-Length: 14049
Cache-Control: max-age=-4116718
Expires: Sat, 17 Nov 2007 12:42:05 GMT
Connection: close
Content-Type: image/jpeg
Content-Language: gb2312



没有问题的 max-age=2545627
HTTP/1.1 200 OK
Date: Fri, 04 Jan 2008 05:06:49 GMT
Server: Apache/2.0.58 (Unix) PHP/4.4.4
Last-Modified: Thu, 03 Jan 2008 16:13:57 GMT
ETag: "14f997-6bc7-ae523b40"
Accept-Ranges: bytes
Content-Length: 27591
Cache-Control: max-age=2545627
Expires: Sat, 02 Feb 2008 16:13:57 GMT
Connection: close
Content-Type: image/jpeg
Content-Language: GB2312

我apache配置文件里面添加了

LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
这两个模块
并且还添加了expiresactive on

#expiresdefault "modification plus 2 weeks"
expiresactive on
#expiresbytype text/html "access plus 10 minutes"
expiresbytype image/gif "modification plus 1 month"
expiresbytype image/jpeg "modification plus 1 month"
expiresbytype image/png "modification plus 1 month"
expiresbytype text/css "access plus 1 day"
expiresbytype application/x-shockwave-flash "access plus 3 day"

但是我有的服务器访问是没有问题的.


expiresbytype application/x-javascrip "access plus 1 day"
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript
我只知道这个值是怎么计算的,但是负值的含义我也不是很理解
计算如下:
因为你image类型文件设置的是 M 动作,所以

max-age=Expires-Date

另外我认为Expires好像是从last-modified推算出来的
所以感觉这个M动作下,应该是
max-age=last-modified+失效时间-Date

PS: A动作中 max-age=设置的失效时间
是不是立即过期的意思?


QUOTE:
原帖由 xinglp 于 2008-11-25 16:37 发表
是不是立即过期的意思?

如果说 更新周期=负值 呢?
是   立即更新
还是 永不更新
哦 问题已经解决  原来是自己以前的测试方法不对

xinglp 说的是对的 立即过期

    当 max-age>0 的时候,client 会直接使用缓存中的内容,而不发出任何HTTP请求。(我错就错在,测试该点的时候用F5刷新来看结果。正确的应该是在新窗口打开输入地址这类的访问)
   
    当 max-age<=0的时候,client会像server发出请求,请求对缓存中的内容进行证言,证言根据last-modified和ETag字段进行比较,确认缓存正确后,返回304。

    RFC 2616中提到:截止时间不能使用强制用户代理刷新它的显示或重新加载;它的语义只应用到缓存机制,且当对该资源的新的请求发起时这种机制只需要检查资源的截止状态。