问题标签 [cache-control]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2061 浏览

iis - IIS7.5 OutputCacheModule 内核缓存“公共”忽略 URL

IIS 7.5 上的 ASP.NET 4 应用程序中的输出缓存有一些奇怪的行为。我已经能够简单地在其他空设置上重复该问题,我确定这是一个错误,但不确定如何向 Microsoft 报告。

IIS 中的站点响应多个域,.NET 应用程序检查主机名,并相应地生成内容。例如,它可能会在空白页中打印请求 URL 的名称。例如,www.first-domain.com 和 www.second-domain.com

web.config 在 system.webServer 节点下有适当的缓存、urlCompression 和 httpCompression 全部关闭。

aspx 页面为 public 设置缓存控制标头,带有一个未来的到期日期,或者一个 max-age 值。

访问 www.first-domain.com 输出成功写入 'www.first-domain.com' 的页面。

但是,访问 www.second-domain.com 会输出一个写有“www.first-domain.com”的页面。

检查失败的请求跟踪,System.Web.Caching.OutputCacheModule 找到了缓存的输出(即使 .config 文件已关闭该功能),即使请求 URL 主机名不同,缓存也已匹配,因此只要设置了 max-age/expiry,第二个请求就会将第一个请求的结果输出到不同的域,然后才会出现第二个域的正确页面。

将缓存控制设置为私有,或删除 web.config 中的“OutputCache”模块可以解决问题,同时保持发送到浏览器的正确缓存控制标头,但显然,我无法利用内核缓存我需要它。

我找不到任何有关如何配置 OutputCacheModule 的 MSDN 文档。

有没有其他人遇到过这个问题,我该如何启用内核缓存并让它考虑 URL 主机名(而不将应用程序分隔到 IIS 中的不同站点)。

谢谢。

更新:

添加 SetSlidingExpiration 无效,因为无论请求主机名如何,内核缓存仍会缓存输出。现在唯一的方案是禁用输出缓存,或者在将运行的每个域上运行应用程序的重复实例 - 考虑到服务器性能下降,这将导致与使用输出缓存获得的性能提高相比,我们决定禁用此应用程序的输出缓存。

0 投票
4 回答
1286 浏览

javascript - IE7 运行良好,但 IE8 不加载 javascript 库脚本 - 有什么问题?

我有一个 javascript Galleria,它在每个现代浏览器中都可以使用,即使在 IE7 中也是如此。但是在 IE8 中,如果它的加载.. 它不显示画廊.. 但是如果我按 Ctrl + F5 它会重新加载,它会擦除​​缓存,最后会出现画廊.. 如果我只是重新加载页面.. 或者如果我用相同的 Galleria 脚本转到另一个页面,问题又来了.. 所以我需要一个 IE8 的硬重新加载脚本。

伪代码:

0 投票
3 回答
48075 浏览

c# - 如何以编程方式清除缓存?

在我的应用程序 ( ASP.NET+ c#) 中,我需要在用户进入 aspx 页面之前清除缓存。

有谁知道我如何以编程方式清除 aspx 页面上的缓存,或者在 (c#) 后面的代码中?

0 投票
2 回答
25140 浏览

nginx - Cache-Control 标头重复;有效与否?(Nginx)

我的 Nginx 中有一个资源,配置如下:

如果我用 Firebug 打开它并查看标题,它会显示:

该网站使用的是 HTTPS,所以我想确保我做对了,因为显然浏览器不会缓存它,除非它是 max-age>0 AND public看到这个

但是当我使用我的 Nginx 时curl -Ik https://...,它会说:

它重复了Cache-Control标题!显然 Firebug 并不介意。但这样做对吗?

是否有一种更好的方法可以在两行中设置ExpiresCache-Control(with )?public

0 投票
2 回答
2561 浏览

javascript - HTTP 缓存控制

我是 HTTP 缓存的新手,真的需要一些帮助......

  1. 我看到很多人"Cache-Control"在将 XHR 发送到服务器时设置了标头。这样做的目的是什么?请求标头是否也需要缓存?

  2. 我已经为 XHR: 设置了这个头文件 Cache-Control max-age=30, must-revalidate,但是当我在 30 秒后刷新(甚至强制刷新)时,Firefox 3.6.13 似乎没有重新验证文件。也没有访问登录服务器。这是因为我没有为 Apache 中的文件设置过期标头吗?

    来自 Firebug 日志:

    响应标头
    日期 2011 年 1 月 22 日星期六 09:59:21 GMT
    最后修改时间 2011 年 1 月 20 日星期四 09:05:11 GMT
    Etag "3e000000023ca7-20d-49a436e5b3413"

    Request Headers
    Keep-Alive 115
    Connection keep-alive
    Content-Type application/xml
    Cache-Control max-age=30, must-revalidate

    该文件已被修改,但 Firefox 甚至不做条件获取。Response Date并且Last-Modified根本不更新。

0 投票
1 回答
657 浏览

drupal - 如何修改 Drupal 5.x 中的“Cache-Control”标头?

我们正在使用 Drupal 5.x。我们正在尝试使用 Squid 作为反向代理。Squid 和 Drupal 已配置。静态内容正在被缓存。

出于测试目的,我们希望在 Drupal 返回的“已验证”页面上设置“Cache-Control: public ...”。

我们看到头文件是在 bootstap.inc 中设置的。我们已经修改了该文件中“Cache-Control”标头的所有实例,将其设置为“public”。但是,当我们查看 HTTP 标头(在 Safari 的 Web Inspector 中)时,我们会看到“Cache-Control:private”。出于这个原因,Squid 在这些页面上返回 Cache MISS。

问题是 - 这个“Cache-Control”到底是在哪里设置为“private”的?我们如何更改经过身份验证的用户的“Cache-Control”标头?

提前致谢!

0 投票
1 回答
2646 浏览

rest - 带有 Jersey 和 json 实现的 HTTP CacheControl

我想将 CacheControl 信息添加到使用 json 绑定的 GET 服务中。我发现要将 cacheControl 添加到响应中,REST 服务听起来像这样:

但我有一个产生 json 消息的 REST 服务,并且 jersey 库自动将 java 对象从 java 转换为 xml/json。

如何将缓存控制添加到 myjsontestservice 服务的响应中?球衣创建响应后,我是否需要使用过滤器并附加缓存控件?感谢万弗拉维奥

0 投票
19 回答
8164 浏览

php - 缓存,PHP 生成的缩略图加载缓慢

问题 A 部分▉(100 赏金,奖励)
主要问题是如何让这个网站加载更快。首先,我们需要阅读这些瀑布。感谢大家对瀑布读数分析的建议。从这里显示的各种瀑布图中可以看出主要瓶颈:PHP 生成的缩略图。David 建议的从 CDN 加载的无协议 jquery 得到了我的赏金,尽管它使我的网站整体速度只提高了 3%,而且没有解决网站的主要瓶颈。是时候澄清我的问题了,还有另一个赏金:

Question Part B ▉ (100 bountys, 已获奖)
现在的新重点是解决 6 jpg 图像所存在的问题,这是导致大部分加载延迟的问题。这 6 张图片是 PHP 生成的缩略图,很小,只有 3~5 kb,但加载速度相对较慢。注意各种图表上的“第一个字节的时间”。问题仍未解决,但詹姆斯得到了赏金,他修复了 RedBot下划线的标题错误:“一个 If-Modified-Since 条件请求返回了完整的内容不变。” .

问题 C 部分▉(我的最后一次赏金:250 分)
不幸的是,在修复了 REdbot.org 标头错误之后,PHP 生成的图像造成的延迟仍然没有改变。这些微小的 3~5Kb 缩略图到底在想什么?所有这些标题信息都可以将火箭发送到月球并返回。非常感谢有关此瓶颈的任何建议并将其视为可能的答案,因为我已经被这个瓶颈问题困扰了七个月了。

[我网站上的一些背景信息:CSS 位于顶部。底部的 JS(Jquery、JQuery UI、购买的菜单 awm/menu.js 引擎、tabs js 引擎、视频 swfobject.js) 第二张图片上的黑线显示了启动加载的内容。愤怒的机器人是我的宠物“ZAM”。他是无害的,而且常常更快乐。]


负载瀑布:按时间顺序| http://webpagetest.org 在此处输入图像描述


并行域分组| http://webpagetest.org 在此处输入图像描述


Site-Perf 瀑布| http://site-perf.com 在此处输入图像描述


Pingdom 工具瀑布 | http://tools.pingdom.com

在此处输入图像描述


GTmetrix 瀑布 | http://gtmetrix.com

在此处输入图像描述


0 投票
1 回答
669 浏览

c# - 如何在 DotNetNuke 5.4.4 的经过身份验证的页面中添加 Cache-Control: no-store?

我想知道Cache-Control: no-cache, no-store在 DotNetNuke 5.4.4 中包含在经过身份验证的页面中的最佳方式是什么。事实上,我也想在 IE6/7 和 FireFox 中防止缓存。

您的建议将不胜感激。

0 投票
1 回答
6797 浏览

ajax - 使用 WebContentInterceptor 为 spring mvc 3 的不同部分设置不缓存?

您好,我开发了一个动态 Web 应用程序,它使用 Ajax 从数据库中获取数据并保持 GUI 是最新的,但是在使用 IE8 对其进行测试时,我遇到了缓存问题。

我在 webmvc-config.xml 文件中使用了以下代码来阻止浏览器缓存:

<mvc:annotation-driven /> <mvc:interceptors> <bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor"> <property name="cacheSeconds" value="0"/> <property name="useExpiresHeader" value="true"/> <property name="useCacheControlHeader" value="true"/> <property name="useCacheControlNoStore" value="true"/> </bean> </mvc:interceptors>

它完全按照它应该的方式工作,但问题是现在浏览器显然没有缓存任何东西。我想知道的是如何修改该 xml 代码,使其适用于 Web 应用程序的 Ajax 部分(使用 5 个控制器文件控制);以便图标..等仍然被缓存?这些控制器文件的路径类似于“/admin/**”

我知道 Spring WebContentInterceptor 具有诸如“setCacheMappings”和“setPathMatcher”之类的属性,但我无法在网上找到在 xml 配置文件中使用这些属性的示例。

任何帮助将不胜感激,这真的让我很头疼。谢谢。杰克