qz.com 如何在登录时显示缓存内容? 没有Javascript

问题描述

因此,我最近再次探索了许多网站的基础架构,并开始非常仔细地检查 http 响应标头。

做了这么久,我觉得很明显,如果你登录一个网站,它无法在显示动态内容的同时显示来自Fastly的缓存主文档页面。事实证明,我错了。

我认为这是可能的唯一方法是提供基于某些 cookie 的缓存页面(我觉得我在某处读到它不安全,但如果我错了,请告诉我)

另外,我知道 qz.com 是一个 Javascript 应用程序,但我在禁用 Javascript 时发现了这一点。当我禁用 Javascript 并在签名时浏览网站时,它仍然显示我已登录的指示符。禁用 cookie 后,登录指示符离开。

当我在登录后导航到新页面时,考虑到登录后的年龄从 0 开始然后上升,看起来缓存只是根据您的 cookie 提供的。 (我认为它重置了)

如果不是这样,谁能告诉我如何做到这一点?

我已阅读此 https://www.section.io/docs/modules/varnish-cache/how-tos/dynamic-caching/ 并且我敢打赌答案已写在此文档/文章中。

谢谢!

解决方法

打孔确实是将您的 HTTP 响应分成几个片段的一种非常常见的方法。这些片段用于呈现不可缓存的数据。

AJAX 是一种常见的打孔技术,但它是在 Javascript 中完成的。

Edge Side Includes (ESI) 是 Varnish 支持的服务器端替代方案。

Varnish 还提供其他机制来执行有状态逻辑。我有一个幻灯片,描述了缓存个性化数据的各种机制:https://speakerdeck.com/thijsferyn/caching-the-uncacheable-with-varnish-php-london-2020

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...