日期:2014-05-17  浏览次数:21021 次

为什么某个文件Etag都不变,但Date值却每次都变化?
每次Date都变化,造成每次都重新获取这个文件。下面是例子:

第一次请求:(空)
回复:
Date Mon, 28 Dec 2009 04:01:08 GMT
ETag W/"12d7d58-8380-47bc749d13b80"
Last-Modified Mon, 28 Dec 2009 04:01:08 GMT

第二次请求:
If-Modified-Since Mon, 28 Dec 2009 04:01:08 GMT
If-None-Match W/"12d7d58-8380-47bc749d13b80"
回复:
Date Mon, 28 Dec 2009 04:01:30 GMT
ETag W/"12d7d58-8380-47bc749d13b80"
Last-Modified Mon, 28 Dec 2009 04:01:30 GMT


也就是说每请求一次,文件的Date就变化一次。
本地没有这个现象,估计是服务器哪里有什么设置造成的,有知道的朋友吗?谢谢!
服务器不支持mod_expires.c,真烦人!

------解决方案--------------------
我也遇到Etag,
我用Live HTTP headers firefox下
http://localhost:8080/webTest/xml/directoryContent.xml?1262164866464

GET /webTest/xml/directoryContent.xml?1262164866464 HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,en-us;q=0.7,zh;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Referer: http://localhost:8080/webTest/
Cookie: JSESSIONID=13FD20A32160F752E851DAA88D6E442A

HTTP/1.x 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
Etag: W/"3665-1262163804343"
Last-Modified: Wed, 30 Dec 2009 09:03:24 GMT
Content-Type: application/xml
Content-Length: 3665
Date: Wed, 30 Dec 2009 09:21:06 GMT

没看到有If-Modified-Since ,If-None-Match 你用什么监控的。
还有我这里Last-Modified不会变,多次请求,响应过来一样的。

------解决方案--------------------
要设置过期时间(Expires)或缓存存活周期(MaxAge)才能有效缓存