如何检查图像是否来自缓存

时间:2009-07-28 07:42:44

标签: browser caching

如何检查图像是来自缓存还是来自服务器。由于我的主页包含45张图片。当我按 F5 时,想知道图像是来自缓存还是来自服务器。

我添加了<%@ OutputCache Duration='120' Location='Client' VaryByParam='none' %>

2 个答案:

答案 0 :(得分:10)

新访问者当然没有任何缓存图片,同时他们也希望您的网站加载速度快。如果您正在测试网站的效果,那么只需清除缓存即可?

如果仅用于调试:

  • Safari有一个Developer菜单,可以通过首选项启用。这里,当从缓存加载某些内容时,Web Inspector中的“资源”选项卡将显示0毫秒。查看详细信息,您会看到在这些情况下缺少请求标头(尽管仍可以查看旧的响应标头)。
  • 使用带有Live HTTP Headers插件的Firefox将准确显示服务器请求的内容。如果未请求,则从缓存加载。 (在这种情况下,不要求任何内容,甚至不使用If-Modified-Since标题。)
  • 安装了Firebug加载项的Firefox为您提供了Net选项卡,但是当启用该选项卡时,即使您没有单击“刷新”,Firefox也将始终再次再次请求所有内容只是跟随一些链接(因此总是使用If-Modified-Since标题,见下文)。这仍然会显示“未修改”。一些精简版的Firebug也可用于Internet Explorer。

请注意,点击F5 / Refresh会使大多数浏览器始终询问服务器是否已更改浏览器已缓存的内容,即使它知道缓存仍应有效。然后,该请求将包含If-Modified-Since标头。如果服务器说它未被修改,则使用缓存。像:

GET /ga.js HTTP/1.1  
Host: www.google-analytics.com  
...  
If-Modified-Since: Mon, 22 Jun 2009 20:00:33 GMT  
Cache-Control: max-age=0  

HTTP/1.x 304 Not Modified  
Last-Modified: Mon, 22 Jun 2009 20:00:33 GMT  
Date: Sun, 26 Jul 2009 12:08:27 GMT  
Cache-Control: max-age=604800, public  
Server: Golfe

以上与导航网站不同。单击链接或稍后返回页面时(键入地址,书签,搜索结果等),如果缓存仍然有效,浏览器将默默地使用缓存,而不会询问是否有任何更改。

(另请注意,代理服务器可能会执行一些缓存。在上面的响应中,public中的Cache-Control表示代理确实可以缓存该特定响应。)

答案 1 :(得分:4)

您只需通过查看服务/已交付图像请求的日志即可从服务器端确定此信息,