问题标签 [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 回答
1083 浏览

python - 将scrapy项目部署到scrapyd时HTTPCACHE不起作用

当我尝试将 HTTPCACHE 与 scrapyd 一起使用时,出现以下错误:

[scrapy] WARNING: Disabled Httpcache Middlware: unable to find scrapy.cfg file to infer project data dir

0 投票
3 回答
929 浏览

apache - Apache webserver 后面的 NodeJS 中的 JSON-API:处理缓存和压缩的最佳实践?

我在 NodeJS 中为一个运行在 Apache 网络服务器后面的小项目编写了 JSON-API。现在我想通过添加缓存和压缩来提高性能。基本上,问题是 NodeJS 本身应该做什么以及 Apache 更好地处理什么:

a) API 调用具有唯一的 URL(例如 /api/user-id/content),我想将它们缓存至少 60 秒。

b) 我希望将输出作为 Gzip 提供(如果客户理解它)。NodeJS 的 HTTP 模块通常以“分块”的形式提供内容。由于我只在一个地方写了一个响应,是否足以调整 Content-encoding 标头以将其作为一个整体提供,以便可以对其进行压缩和缓存?

0 投票
2 回答
3322 浏览

java - 如何在小程序中禁用 http 缓存

如何禁用我的 japplet 中所有 http 连接的 http 缓存?我不想缓存我的任何 http(请求/响应)。无论控制面板\java\临时文件设置中的用户设置如何。Applet 使用 java1.6 签名和编译。
我正在使用 URLConnection.class,并且正在缓存我对第 3 方 Web 服务的请求。
即:
我可以在 Java Cache Viewer 中看到我的请求 url。 http://www.service.com?param1=232¶m2=2323232
我也可以在应用程序中找到响应 ....users\data\sun\java\deployment\cache
responseline1
responseline2

0 投票
1 回答
1508 浏览

iis - 什么是高流量静态站点的 HTTP 缓存最佳实践?

我们有一个流量相当大的静态站点(即没有服务器代码),包含大量图像、脚本、css,由 IIS 7.0 托管

我们想打开一些缓存以减少服务器负载,并考虑将 Web 内容的到期时间设置为将来的某个时间。在 IIS 中,我们可以通过 IIS 响应标头模块中常见 http 标头的“过期 Web 内容”部分在全局级别上执行此操作。也许将内容设置为在投放后 7 天过期。

据我所知,这实际上所做的只是设置max-ageHTTP 响应标头,我想这是有道理的。

现在,混乱:

  1. 首先,我检查过的所有浏览器(IE9、Chrome、FF4)似乎都忽略了这一点,并且仍然向服务器发出有条件的请求以查看内容是否已更改。所以,我不完全确定 max-age 响应标头实际上会产生什么影响?!会不会是旧版浏览器?还是网络缓存?

  2. 我们可能想在短时间内更改站点中的图像......我猜如果 max-age实际上被某些东西使用,就其本质而言,它不会检查这是否图像已经改变了 7 天......所以这也不是我们想要的

我想知道是否最佳做法是将一个站点划分为内容文件夹真的不会经常更改并且只会为这些文件夹开启一些长期到期?如果需要,也许可以改变查询字符串以强制刷新这些文件夹中的内容(例如 /assets/images/background.png?version=2)?

无论如何,在浏览了(相当枯燥的!)HTTP 规范和一些教程之后,我仍然对我们的情况没有真正的感觉。

任何与我们类似的情况的实际经验将不胜感激!

0 投票
1 回答
1357 浏览

caching - Http缓存 - 检查文件更改适用于html但不适用于xml - Chrome

我有两个文件,我想缓存客户端,直到源更改。

对 html 页面 (index.html) 的调用在响应中有以下标头:

对 xml 页面 (application-context-dashboard.xml) 的调用在响应中有以下标头:

现在,当我重新加载它们时,对于 index.html,会发送 304 以检查文件是否已更改。对于 xml 文件,不发送 304 并触发客户端缓存。

304 调用 index.html:请求:

有没有办法为 xml 文件实现相同的结果?+ 为什么它适用于 html 而不适用于 xml?初始请求的两个标头似乎是相同的。

浏览器:铬。

其他静态内容(如 swf、txt、...

更新:

显然 Chrome 对 index.html 的工作还不错,但例如 firefox 就没有……

0 投票
1 回答
938 浏览

node.js - 相当于node.js中的.net输出缓存?

来自 asp.net 的 node 新手,因此对在 node.js 中实现缓存的最佳模块/框架感到好奇。我想缓存一些昂贵的数据库查询,因此寻找一种简单的方法来缓存数据库结果或整个 http 页面输出到内存。

在 .net 中,它将使用 httpcache 或页面输出缓存。节点世界中是否存在等价物?

我应该设置一个本地 memcached 或 redis 服务器来完成此操作吗?

0 投票
2 回答
1219 浏览

ruby-on-rails - 'Vary: If-None-Match' 分别缓存移动和桌面请求

注意:如果我的任何假设是错误的,请纠正我。我对这些都不是很确定...

我一直在研究 Heroku 上的 HTTP 缓存,并试图找出一种在 Heroku 上使用 Varnish 进行缓存时区分移动和桌面请求的好方法。

我的第一个想法是,我可以设置一个Vary标头,以便缓存是 Varied on If-None-Match。由于 Rails 自动发回根据内容哈希生成的 etag,etag 在桌面和移动请求(不同的模板)之间会有所不同,因此它最终会缓存两个版本(不是事实,只是我最初的想法)。我一直在玩这个,但我认为它不起作用。

首先,当/如果有任何东西被缓存时,我无法理解,If-None-Match因为无论如何请求肯定是有条件的?其次,在实践中,新请求(没有 If-None-Match 的请求)有时会收到移动站点。这是因为缓存不知道是否提供移动或桌面缓存版本,因为If-None-Match标题不存在?

可能听起来,我很困惑。这种方法会以任何方式起作用还是我很傻?另外,如果我根本无法访问 Varnish 配置(就像我在 Heroku 上一样),是否有实现单独的缓存版本?

我在 Rails 中用来设置缓存头的确切代码是:

编辑:我知道我可以使用Vary: User-Agent但如果可能的话尽量避免它,因为它有很高的未命中率(很多很多用户代理)。

0 投票
2 回答
11436 浏览

java - I'm trying to use Java's HttpURLConnection to do a "conditional get", but I never get a 304 status code

Here is my code:

I never seem to get the HTTP_NOT_MODIFIED response code, even hitting the same server several times in quick succession - where there is definitely no change to the page. Also, conn.getHeaderField("ETag") always seems to respond null, and sometimes conn.getHeaderFieldDate("Last-Modified", 0) returns 0. I've tried this against a variety of web servers.

Can anyone tell me what I'm doing wrong?

0 投票
0 回答
519 浏览

http-caching - 利用浏览器缓存并指定缓存验证器

http://gtmetrix.com/reports/enji.se/RVzr15zT

这就是我的结果!

有谁知道如何修复利用浏览器缓存并指定缓存验证器?

我用谷歌搜索但没有找到任何东西:/

我有阿帕奇

在此先感谢,恩吉

0 投票
1 回答
195 浏览

apache - 根据请求启用 mod_expire

我没有生成指向 的链接file.js,而是计算版本号或哈希总和并链接到file--bbe02f946d.js. 我正在使用以下重定向规则来提供文件的当前版本:

现在,我想为这些请求设置非常遥远的Expires标头:

这工作正常,但也适用于尚未版本化的资源(/file.js请求)。如何仅为与 RewriteRule 匹配的请求设置过期标头?通常,我会使用<LocationMatch>,但这不可用,因为应用程序必须能够在我可以修改 htaccess 的任意服务器上运行。