etags

基于 ETag 的内容重新验证
etags

基于 ETag 的内容重新验证

我的 CMS 生成相当复杂的页面,因此需要一点时间(大约 2 秒),这远远超出了我向客户提供页面的时间预算。 但是,对我来说,了解给定页面的当前版本非常容易,因此我可以很容易地判断给定版本是否仍然是最新的。因此,我希望能够实施基于 ETag 的策略,其中对页面的每一个请求都需要重新验证,但如果内容没有变化,服务器将在 10ms 内回复。 为了使此方法有效,我需要在所有客户端之间共享此缓存。只要 ETag 重新验证,我的所有页面对于所有用户来说都将保持相同,因此我可以安全地共享他们的内容。 为了做到这一点,我的页面发出了一个: Cache-Control: p...

Admin

如何在 Tomcat 9 中禁用 ETag 标头?
etags

如何在 Tomcat 9 中禁用 ETag 标头?

如何在 Tomcat 9 中禁用 ETag 标头?如果提供详细信息/示例等,将会很有帮助。 需要删除 etags,因为这在安全扫描中被报告为漏洞。尝试了网上的各种解决方案,但都没有奏效。 ...

Admin

上游生成的 ETag 是否需要 If-None-Match 检查?(NGINX)
etags

上游生成的 ETag 是否需要 If-None-Match 检查?(NGINX)

(重新发布我一年没更新后删除的帖子) 假设我在 NGINX 中使用etag off(并使用if_modified_since off以add_header Last-Modified ""避免冗余)并且我在上游生成 ETag(即我正在使用proxy_pass)。 为了使 ETag 有用,它们应该与 If-None-Match 标头一起检查。我的问题是——当我在上游生成 ETag 时,我是否需要检查上游的 If-None-Match 标头,还是 NGINX 自己的标头可以工作? 我检查了源代码,但我不确定该函数何时执行,并且 NGINX 在执行该函数时是否已经...

Admin

Nginx 默认为哪些静态文件类型生成 ETag?
etags

Nginx 默认为哪些静态文件类型生成 ETag?

在 Nginx 的现代版本中,ETag 是自动生成对于静态文件类型,即使您没有etag on在位置块中特别启用或以其他方式: https://nginx.org/en/docs/http/ngx_http_core_module.html#etag 例如,即使您未手动启用它们,Nginx 提供的 PNG 或 JPEG 文件也会自动在未进行 gzip 压缩的静态文件中包含content-length、last-modified和的 HTTP 标头……etag 但是,Nginx 默认对哪些文件类型执行此操作?当我通过.html在静态文件位置块中包含文件扩展名并手...

Admin

在 nginx 中使用带有 nonces 的 CSP 时进行客户端缓存 - 如何使用弱缓存验证器/etags?
etags

在 nginx 中使用带有 nonces 的 CSP 时进行客户端缓存 - 如何使用弱缓存验证器/etags?

我在用着nginx 的expires指令; 它是etag指示以及Last-Modified标题(如果我理解正确的话)默认处于开启状态。 为了在使用限制性内容安全策略 (CSP)标题(即没有'unsafe-inline'资源策略)我想使用随机数。 我基本上遵循了Scott Helme 就此事撰写的文章,在我的试用版中使用 nginx$request_id创建nonce 就像在 ServerFault 上讨论的那样(为了快速尝试这一点,而不必从头开始构建 nginx)。 然而,当我尝试这样做时,似乎缓存不再像我预期的那样工作: Nginx 每次都以文件、新鲜内容...

Admin

如何在 IIS 8.5 上配置实体标签 (ETag)?
etags

如何在 IIS 8.5 上配置实体标签 (ETag)?

YSlow 抱怨某些图像的 ETag 配置错误,我找到了一些文章并按照说明操作,但它在 IIS 8.5 中仍然无法正常工作 您知道添加 eTag 的正确方法是什么或如何添加可以执行此操作的重写规则吗? 例如,YSlowhttps://UFOToday.com ...

Admin

使用 ETag 与 LastModified 作为 CDN 缓存验证器的优点和缺点是什么?
etags

使用 ETag 与 LastModified 作为 CDN 缓存验证器的优点和缺点是什么?

我正在阅读有关 Azure CDN 的这篇文章。我可以使用以下方法控制缓存: ETag 上一次更改 默认启发式方法 前两种选择各有什么优缺点?这重要吗? 其中一个可能起作用的地方与另一个可能起作用的地方可能是: 跨域调用 私人浏览 IFrames 阿贾克斯 ...其中数据只能通过这些方法看到,而不能通过其他方法看到。 ...

Admin

代理如何处理 ETag?
etags

代理如何处理 ETag?

我使用 ETag 来提高性能。我决定使用在服务器、客户端和代理上都有效的 ETag。 但是如果代理已保存 ETag,该如何处理?代理是否仍会询问网站 ETag 是否有效,还是代理本身只是回答“我知道这个。无需询问服务器?” 或者换句话说,如果启用了代理上的 ETag 缓存,以下场景是否仍然有效? 浏览器发出请求。返回 ETag“ABBA” 浏览器向服务器发出另一个请求。识别到 ETag“ABBA”,返回 304 2.1 浏览器使用本地缓存 浏览器向服务器发出另一个请求,发送 ETag“ABBA”。这一次,服务器认为数据已更改,因此它返回带有新 Eta...

Admin

Apache 2.4 中的 RFC 2616
etags

Apache 2.4 中的 RFC 2616

我使用 Apache 2.4.3 作为反向代理,因为它宣称符合 RFC 2616。我的应用程序使用如下标头在代理上启用缓存: Cache-Control: public, s-maxage=0 Expires: ... (+1 day) X-Group: A Vary: X-Group ETag: W/"foo1" 在第一个请求预热缓存之后,如果我的应用程序更改为以下响应: Cache-Control: public, s-maxage=0 Expires: ... (+1 day) X-Group: B Vary: X-Group ETag: W/...

Admin

Nginx 发送 2 个 Cache-Control 标头
etags

Nginx 发送 2 个 Cache-Control 标头

我正在使用 ngnix 提供静态内容。 位置/静态{ 别名 /opt/static/blog/; 访问登录关闭; etags 开启; etag_hash开启; etag_hash_方法md5; 1天后过期; add_header Pragma“公共”; add_header Cache-Control “公共,必须重新验证,代理重新验证”; } 生成的标题如下所示: 缓存控制:公共、必须重新验证、代理重新验证 缓存控制:最大年龄=86400 连接:关闭 内...

Admin

Apache 缓存和过期配置
etags

Apache 缓存和过期配置

我正在寻找适合我的具体情况的最佳缓存/过期配置。 我意识到有些网站主张关闭 etags:Header unset ETag、FileETag None 我知道我应该使用 Expires 或 Cache-Control。此外,我知道我应该使用 Last-modified 或 ETAG(根据 ySlow 文档)。 我继承了一个客户端服务器,它在.htaccess 中使用以下内容: <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|xml|txt|html|htm)$"> Heade...

Admin

哪些反向代理支持 HTTP/1.1 ETag 和 If-None-Match 标头?
etags

哪些反向代理支持 HTTP/1.1 ETag 和 If-None-Match 标头?

我正在为电子商务平台开发一个缓存系统,该系统将使用反向代理进行缓存。我计划使用适当的 HTTP/1.1 标头来处理失效问题。也就是说,我将在第一次生成内容时设置 ETag,并在应用程序中缓存该 ETag 值。Cache-Control 标头将指定“must-revalidate”,因此代理应在后续使用 ETag 的请求中设置 If-None-Match 标头。应用程序将查找缓存的 ETag 值,如果匹配,它将发送 304 响应,否则它将生成完整的 200 响应。 我希望使用 nginx,但我不能确定它是否支持 ETag(文档表明它不支持,但也许它们已经过时...

Admin

提示服务器输入 Etag 或 MD5
etags

提示服务器输入 Etag 或 MD5

我们是一个价格比较门户网站,会定期抓取某些网站。我正在寻找一种节省带宽的方法,即如果内容没有变化,则避免反复下载同一页面,而是只发出头部请求。由于我们关心的网站本质上是动态的,因此 Last-Modified 字段或 Content-Length 不是某个网页是否已更改的可靠指标。响应 Etags 字段或更好的响应 MD5 可能会正常工作。但是,大多数服务器不会为每个请求生成内容 MD5,这可能是因为这意味着每个响应都会产生一些 CPU 开销,并且会减慢它们的速度,而不是节省一些带宽,从而使它们更快。 我的问题是,是否存在一种普遍接受的方法来创建一个 HT...

Admin