最小化304请求的麻烦

时间:2012-01-27 16:16:33

标签: asp.net iis-7.5

现在我正在尽量减少对我网站的304个请求。我已经实现了这里要求的建议:

Asking browsers to cache as aggressively as possible

然而,无论我做什么,一些图像都拒绝从缓存中拉出,即使它们与其他拉出的图像类似。现在我们使用IIS 7.5和chrome来查看网络流量。

以下是将从缓存中提取的图像btn-blue.png的初始响应示例:

Accept-Ranges:bytes
Content-Length:49585
Content-Type:image/png
Date:Fri, 27 Jan 2012 16:02:26 GMT
ETag:"26cb96cdccc1:0"
Expires:Sat, 31 Dec 2012 00:00:00 GMT
Last-Modified:Thu, 26 Jan 2012 20:49:46 GMT
Server:Microsoft-IIS/7.5
X-Powered-By:ASP.NET

以下是图片响应标题的示例,topnav-blue-poweredbyipipeline.png,永远​​不会从缓存中提取:

Accept-Ranges:bytes
Content-Length:2680
Content-Type:image/png
Date:Fri, 27 Jan 2012 16:02:17 GMT
ETag:"b85767a6cdccc1:0"
Expires:Sat, 31 Dec 2012 00:00:00 GMT
Last-Modified:Thu, 26 Jan 2012 20:49:47 GMT
Server:Microsoft-IIS/7.5
X-Powered-By:ASP.NET

知道为什么会拉,而另一个不会?

2 个答案:

答案 0 :(得分:5)

所以我们弄明白为什么会这样。事实证明,如果您使用Enter按钮导航到网页Chrome将积极使用其缓存。如果您使用刷新按钮,Chrome会为几乎所有元素拨打电话。

答案 1 :(得分:0)

您链接的其他帖子中的所有内容都有一个Cache-Control:max-age =标头。你试过吗?我不认为expires和etag就足够了,我认为你也需要Cache-Control,但我还没有真正测试过它。