在Firefox 6中使用LiveHttpHeaders
我试图查看我的css,JS文件是否使用htaccess从Apache使用Headers Module进行缓存。但我很困惑,“Cache-Control”数据有两个值:
GET /proz/css/global.css HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept: text/css,*/*;q=0.1 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive Referer: http://localhost/proz/ Cookie: PHPSESSID=el34de37pe3bnp4rdtbst1kd43 If-Modified-Since: Fri, 16 Sep 2011 21:15:32 GMT If-None-Match: "400000000b06a-2999-4ad157e5b4583" Cache-Control: max-age=0 HTTP/1.1 304 Not Modified Date: Sat, 17 Sep 2011 03:04:50 GMT Server: Apache/2.2.17 (Win32) PHP/5.2.8 Connection: Keep-Alive Keep-Alive: timeout=5, max=99 Etag: "400000000b06a-2999-4ad157e5b4583" Cache-Control: max-age=604800, public Vary: Accept-Encoding
哪一个是真实数据,第一个Cache-Control数据(max-age = 0)或后者。
我还想知道在htaccess中使用deflate模块之后如何确保我的JS,CSS,HTML文件被压缩。是的,标题和deflate模块都打开了。
答案 0 :(得分:5)
此清单中有两个部分:
客户端(您的浏览器)发送的Cache-Control: max-age=0
告诉服务器(或中间的任何代理)发送最新版本的文件。当您点击刷新按钮时,浏览器通常会发送此信息。
服务器发送的Cache-Control: max-age=604800, public
告诉客户端(您的浏览器或代理)该文件有效604800秒,并且可以缓存该时间。 (浏览器甚至不会尝试询问服务器是否存在更新的版本,除非您按 refresh ,就像在这种情况下那样。)
服务器回复304 Not Modified
,这意味着您的浏览器已经拥有最新版本,并且无需再次下载(它没有再次下载)。
Vary: Accept-Encoding
标头表示服务器根据客户端的Accent-Encoding
标头做出了一些决定。这可能表明,如果服务器没有回复304 Not Modified
,它就会压缩文件。
要验证最后一点,请清除缓存,然后再次请求该文件,并查看Content-Encoding
标头的内容(如果数据已压缩,则必须是gzip或deflate)。