问题标签 [http-caching]

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 投票
1 回答
85 浏览

visual-studio-2005 - 在运行 IIS 5.1 的 XP 上使用 Web.Caching 不可用?

环境:我在 IIS6 上运行的 ASP.Net 2.0 网站上工作;我正在使用 VS2005 和 VB 在运行 IIS 5.1 的 WinXP 上进行本地开发。

问题:我正在尝试使用 System.web.caching.cache 为某些业务层对象(实际上是创建一个缓存层)创建缓存。这应该在 System.Web 命名空间下可用,但我似乎可以访问的是:AspNetHostingPermission、AspNetHostingPermissionAttribute 和 AspNetHostingPermissionLevel(我在项目中引用了 System.Web 并在类中导入)。还有很多其他类(例如,HTTPRuntime)也没有出现(这是根据“使用 SQL 缓存依赖项”教程http://www.asp.net/web-forms/tutorials/data-access/caching -data/using-sql-cache-dependencies-vb)。

我已经走到了尽头,似乎找不到任何东西来解释这一点。有没有人遇到过这种情况并且以前见过这种情况?非常感谢任何帮助解决这个问题!

0 投票
1 回答
2533 浏览

asp.net - 在 WCF 服务中设置 HTTP 缓存控制标头

我正在开发在 WCF 上实现的 HTTP REST 服务。我想为我的操作适当地设置 HTTP 缓存控制标头。

我已经看到了一些涉及使用WebOperationContext.Current.OutgoingResponse修改每个方法中的标头的示例。但老实说,这很让人头疼,尤其是因为我几乎所有的操作都将使用相同的缓存控制策略(无缓存)。

我认为必须有一种优雅的方式来设置它。也许是 ServiceBehavior 的组合来设置服务级别默认值,以及 OperationBehaviors 来覆盖某些操作?或者也许有更好的方法来做到这一点?

0 投票
2 回答
573 浏览

singleton - 使用静态或单例类而不是 System.Web.HttpRuntime.Cache?

我坚信用硬件来解决软件问题并不是最好的策略。因此,当注意到我们的一台服务器(当前运行 2 个演出)存在一些内存问题时,我将其归结为 System.Web.HttpRuntime.Cache 的使用。虽然对于几个站点来说,这是有道理的,抛出 50 个都使用 System.Web.HttpRuntime.Cache 的站点开始拆除墙壁。

如果没有外部缓存服务器的选项,我正在考虑修改代码以使用静态类或单例来保留全局数据(另一个选项是发出额外的数据库请求)。

我不完全清楚这是否会有任何变化,因为数据仍然“在内存中”,我们可能只需要在服务器上投入更多内存。

在单例或静态类上使用 System.Web.HttpRuntime.Cache 是否有更多的开销,有哪些推荐的方法来解决这个问题?

- 更新 -

在监视当前文件缓存内存使用情况时,我注意到当我在同一个应用程序池上访问一些站点时这个数字出现了峰值。这个数字跃升至 1,000,000(我假设的字节数)。我注意到随着 活动刷新条目的数量增加然后减少,这个数字最终开始减少。

我怎样才能更快地清除它,因为当多个应用程序池中的这个数字很高时,问题似乎就开始了?

而不是仅仅撕掉缓存(正如建议的那样,这可能不是最好的主意),简单地为缓存的对象设置一个更快的到期时间可能会产生更好的结果?

0 投票
1 回答
190 浏览

xml - Django 中的 XML 缓存

我确实想使用 XML 提要,但我有一些性能问题。XML 提要基本上是一个带有返回 XML 参数的 URL。

我打开 urlurllib.urlopen(URL)并用xml.dom.minidom.parse. 它给了我一个 DOM 对象,而不是我得到的相关部分。

问题是我必须多次打开同一个 URL 的连接,它返回完全相同的 XML。我想缓存生成的 XML,而不是在打开新连接之前我想检查它是否已经在内存中。当然,我必须每小时或任何其他算法刷新缓存。

但是,我有点困惑如何在 Django 中实现它?或者您还有其他缓存建议吗?

谢谢

0 投票
1 回答
292 浏览

asp.net - 即使使用唯一的查询字符串也会缓存 SWF

当我们从 ASP.NET 页面引用 SWF 文件时,我们会将版本号附加到 SWF url,例如App.swf?1.1.0.0. 在最近的更新中,Firefox 继续使用缓存的 swf,即使版本号发生了变化,App.swf?1.2.0.0. 我们在其他浏览器中没有注意到这种行为。

有没有其他人看到过这种行为?我们不想完全禁用缓存。此时我们可能会为每个版本更改 swf 的名称,例如App.1.2.0.0.swf,这似乎有点过分。

谢谢,

0 投票
1 回答
5035 浏览

http - 清漆 + 静态 HTML 页面

我最近遇到了一个名为 Varnish 的 http 网络加速器。根据我的阅读,Varnish 通过使用反向代理配置优化与 HTTP 服务器的 HTTP 通信的每个过程来加速网站的交付。

我的问题是,如果您有一个网站,其缓存机制一直配置为静态 html 文件,那么 Varnish 对此有何影响?反向代理是否减少了 HTTP 服务器为处理请求而执行的工作?如果您将所有内容都广泛缓存在服务器端(HTTP 标头、Etags、Expires 标头、数据库缓存、片段和页面缓存),那么 HTTP 加速器还能做些什么来改进呢?

0 投票
1 回答
374 浏览

ruby-on-rails - 如何使用 Rails 控制特定文件的 max-age?

我让 Rails 为我的静态资产提供服务。他们中的大多数人的名字中都有哈希值,并且有很远的到期日期。但是对于一个文件,我不能在其名称中使用哈希来提供它,因此我需要控制到期日期。

我的 application.rb 中有这个,它适用于所有静态资产:

有没有办法让我只为一个文件设置不同的最大年龄?我知道我可以创建一个新的中间件,ActionDispatch::Static然后更改某些文件的值(参见这篇文章)......但是这将针对每个请求运行,即使是那些不是静态资产的请求。有没有更优雅的解决方案?

0 投票
1 回答
793 浏览

http-headers - Understanding caching strategies of a dynamically generated search page

While studying the caching strategies adopted by various search engine websites and Stackoverflow itself, I can't help but notice the subtle differences in the response headers:

Google Search

Yahoo Search

Stackoverflow Search

There must be some logical explanation behind the settings adopted. Can someone care to explain the differences so that everyone of us can learn and benefit?

0 投票
1 回答
764 浏览

http - 未在 http 响应标头中设置“缓存控制”的后果是什么?

比如说,我的 Web 应用程序响应一个 http 请求,其响应头中没有“缓存控制”。如果客户端在较短的时间内提交相同的请求,会发生什么?是否使用了响应的缓存副本,因此请求不需要到达服务器?还是像第一次一样将请求发送到服务器?

如果答案是“取决于”,请说明依赖项是什么。谢谢。

0 投票
1 回答
3041 浏览

django - Django 对 web/http 缓存的默认行为

我的问题是指django 文档的这一部分

其中,有一段文字如下:

请注意,缓存中间件已经使用 CACHE_MIDDLEWARE_SECONDS 设置的值设置了缓存标头的 max-age。如果您在 cache_control 装饰器中使用自定义 max_age,则装饰器将优先,并且标头值将正确合并。

我的解释是,默认情况下,来自 django 服务器端的响应在其 http 标头部分中会包含“Cache-Control:max-age=600”,除非使用一些与 http-cache 相关的装饰器来修改“Cache-Control” “标题。

我做了一个快速实验来验证我上面的解释。令人惊讶的是,当视图上没有使用与 http-cache 相关的内容时,生成的响应根本没有“Cache-Control”标头

为什么我看到的结果与官方文档描述的不同?我误解了概述的段落吗?

此外,当响应中没有“Cache-Control”标头时,我可以安全地假设不涉及 http 缓存(即不会使用缓存响应)吗?