【问题标题】:how to know if code coming from local cache vs server如何知道代码是否来自本地缓存与服务器
【发布时间】:2012-01-27 17:56:30
【问题描述】:

在提琴手中,有没有办法知道是否从本地缓存加载了某些代码(jscript、jquery、css)与从服务器下载。我认为这可能在网络会话中由不同的颜色表示,但无法找到这些颜色的图例。

【问题讨论】:

    标签: fiddler


    【解决方案1】:

    如果您看到304 Not Modified 响应,则表示客户端发出了条件请求,并且服务器发出“无需下载,您已缓存最新版本”的信号。这是缓存响应的“类别”。

    但是,对于某些实体,甚至不发送条件请求(Expires 标头在未来,等等 - 请参阅RFC2616)。这些根本不会出现在 Fiddler 中,因为根本没有请求 - 客户端可能会认为缓存的版本是新的。

    可以看到的当然是非缓存资源 - 任何从 2xx 范围返回的响应代码都应该是非缓存的(除非上游缓存代理配置严重错误,但现在很少见了)。

    您可以清除缓存,然后打开页面。保存这些结果。然后再次打开页面 - 与第一次加载相比,看看缺少什么;那些被缓存了。

    【讨论】:

    • 我应该在哪里寻找这些 304?我认为有些内容在缓存中,但是当我在 WebSessions 下的 Result 列中看到它们时,它们被保护为 200。我错过了什么?
    • 通常出现 200 的同一列。 200 是“OK” - 未缓存。 304 是“未修改” - 检查新鲜度,然后从缓存中使用。如果您看到所有 200 个,那么这些都没有被缓存;但可能还有其他对象根本没有被检查并直接从缓存中获取。
    【解决方案2】:

    Fiddler 是一个 HTTP 代理,所以它根本不显示缓存的内容。

    【讨论】:

    • 它确实显示了304 Not Modified 响应,但它们表示“您已经拥有这个,从本地缓存中提供它”。但是您是正确的,甚至不必有条件地请求未过期的实体。
    • 好的,有没有什么工具可以用来确定哪些网页内容(图像、脚本等)是从cahce 使用的还是从服务器使用的。我听说可以使用firebug,但不确定IE版本是否可用。有什么想法吗?
    • 还有在哪里显示 304?是WebSessions下的结果栏吗?
    • 请参阅stackoverflow.com/questions/8936284/…,了解有关 IE9 网络选项卡及其在缓存与 304 之间存在的错误的讨论。
    猜你喜欢
    • 1970-01-01
    • 2011-01-02
    • 2017-04-19
    • 2017-06-26
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多