问题标签 [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.
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 无效,因为无论请求主机名如何,内核缓存仍会缓存输出。现在唯一的方案是禁用输出缓存,或者在将运行的每个域上运行应用程序的重复实例 - 考虑到服务器性能下降,这将导致与使用输出缓存获得的性能提高相比,我们决定禁用此应用程序的输出缓存。
javascript - IE7 运行良好,但 IE8 不加载 javascript 库脚本 - 有什么问题?
我有一个 javascript Galleria,它在每个现代浏览器中都可以使用,即使在 IE7 中也是如此。但是在 IE8 中,如果它的加载.. 它不显示画廊.. 但是如果我按 Ctrl + F5 它会重新加载,它会擦除缓存,最后会出现画廊.. 如果我只是重新加载页面.. 或者如果我用相同的 Galleria 脚本转到另一个页面,问题又来了.. 所以我需要一个 IE8 的硬重新加载脚本。
伪代码:
c# - 如何以编程方式清除缓存?
在我的应用程序 ( ASP.NET
+ c#
) 中,我需要在用户进入 aspx 页面之前清除缓存。
有谁知道我如何以编程方式清除 aspx 页面上的缓存,或者在 (c#) 后面的代码中?
nginx - Cache-Control 标头重复;有效与否?(Nginx)
我的 Nginx 中有一个资源,配置如下:
如果我用 Firebug 打开它并查看标题,它会显示:
该网站使用的是 HTTPS,所以我想确保我做对了,因为显然浏览器不会缓存它,除非它是 max-age>0 AND public
。看到这个
但是当我使用我的 Nginx 时curl -Ik https://...
,它会说:
它重复了Cache-Control
标题!显然 Firebug 并不介意。但这样做对吗?
是否有一种更好的方法可以在两行中设置Expires
和Cache-Control
(with )?public
javascript - HTTP 缓存控制
我是 HTTP 缓存的新手,真的需要一些帮助......
我看到很多人
"Cache-Control"
在将 XHR 发送到服务器时设置了标头。这样做的目的是什么?请求标头是否也需要缓存?我已经为 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
根本不更新。
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”标头?
提前致谢!
rest - 带有 Jersey 和 json 实现的 HTTP CacheControl
我想将 CacheControl 信息添加到使用 json 绑定的 GET 服务中。我发现要将 cacheControl 添加到响应中,REST 服务听起来像这样:
但我有一个产生 json 消息的 REST 服务,并且 jersey 库自动将 java 对象从 java 转换为 xml/json。
如何将缓存控制添加到 myjsontestservice 服务的响应中?球衣创建响应后,我是否需要使用过滤器并附加缓存控件?感谢万弗拉维奥
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
c# - 如何在 DotNetNuke 5.4.4 的经过身份验证的页面中添加 Cache-Control: no-store?
我想知道Cache-Control: no-cache, no-store
在 DotNetNuke 5.4.4 中包含在经过身份验证的页面中的最佳方式是什么。事实上,我也想在 IE6/7 和 FireFox 中防止缓存。
您的建议将不胜感激。
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 配置文件中使用这些属性的示例。
任何帮助将不胜感激,这真的让我很头疼。谢谢。杰克