LiveHttpHeaders:哪个缓存控制信息是正确的 [英] LiveHttpHeaders: which cache-control info is right

查看:158
本文介绍了LiveHttpHeaders:哪个缓存控制信息是正确的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于Firefox 6,使用 LiveHttpHeaders 我试图查看我的css,JS文件是否使用htaccess使用来自Apache的头文件模块进行缓存。但我搞不清楚,有'缓存控制'数据的2个值:

$ $ p $ GET /proz/css/global.css HTTP / 1.1
主机:localhost
用户代理:Mozilla / 5.0(Windows NT 5.1; rv:5.0)Gecko / 20100101 Firefox / 5.0
接受: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
连接:keep-alive
参考: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未修改
日期:2011年9月17日(星期六)03:04:50 GMT
服务器:Apache / 2.2.17(Win32)PHP / 5.2.8
连接:Keep-Alive
Keep- Alive:timeout = 5,max = 99
Etag:400000000b06a-2999-4ad157e5b4583
Cache-Control:max-age = 604800,public
Vary:Accept-Encoding

哪一个是真正的数据,fi第一个缓存控制数据(max-age = 0)或后一个。

我也想知道如何确保我的JS,CSS,HTML在htaccess中使用deflate模块后,文件被压缩。是的,这两个头文件和deflate模块都打开。

解决方案

b
$ b

  • 空白行之前的部分是您的浏览器发送的请求

  • 空白行之后的部分是响应,由服务器发送

    $ b $ Cache-Control:max-age = 0 refresh 按钮时发送。


    $ b

    Cache-Control:max-age = 604800 ,服务器发送的公共告诉客户端(你的浏览器或代理)该文件有效时间为604800秒,并且可以在那段时间被缓存。 (浏览器甚至不会试图询问服务器是否存在更新的版本,除非您按下 refresh ,就像在这种情况下那样)。



    服务器回答 304 Not Modified ,这意味着您的浏览器已经有最新的版本,并且不需要再次下载(它没有下载
    $ b

    Vary:Accept-Encoding 标题表示服务器根据客户端的 Accent-Encoding 标题。这可能表明,如果服务器没有回答 304 Not Modified ,它将压缩文件。



    为了验证最后一点,清除缓存并再次请求文件,并查看 Content-Encoding 头的内容(如果数据必须是gzip或deflate被压缩)。


    Using LiveHttpHeaders for Firefox 6 I was trying to see if my css, JS files being cached using Headers Module from Apache using htaccess. But I confuse, there are 2 values from the 'Cache-Control' data:

    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
    

    Which one is the true data, the first Cache-Control data (max-age=0) or the latter one.

    I also would like to know how do I make sure that my JS, CSS, HTML files being compress after I use deflate module in htaccess. And yes, both headers and deflate modules are turn on.

    解决方案

    There are two parts in this listing:

    • The part before the blank line is the request, sent by your browser
    • The part after the blank line is the response, sent by the server

    The Cache-Control: max-age=0 sent by the client (your browser) tells the server (or any proxy in the middle) to send the most fresh version of the file. The browser usually sends this when you hit the refresh button.

    The Cache-Control: max-age=604800, public sent by the server tells the client (your browser or a proxy) that the file is valid for 604800 seconds and can be cached for that time. (The browser won't even attemps to ask the server if a newer version exists, unless you hit refresh, as you did in this case.)

    The server replied 304 Not Modified, this means that your browser already has the most recent version and it doesn't need to download it again (it did not downloaded it again).

    The Vary: Accept-Encoding header indicate that the server taken some decisions based on the client's Accent-Encoding header. This may indicate that, if the server didn't replied 304 Not Modified, it would have compressed the file.

    To verify this last point, clear your cache, and request the file again, and look at the content of the Content-Encoding header (must be gzip or deflate if the data is compressed).

    这篇关于LiveHttpHeaders:哪个缓存控制信息是正确的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆