缓存和http缓存有什么区别"reverse proxy"

whats the difference between cache & http cache "reverse proxy"

我有点难以理解普通缓存 "memory,file,db,etc.." 和 http 缓存 "reverse proxy" 之间的区别。

示例。

假设我有一个页面分为 3 个部分。

当我从数据库中检索这些部分时,我将每个部分缓存在它自己的键中&当新数据输入到任何这些部分时,我刷新缓存并重新制作它包括新数据,所以现在每个部分只会在添加了新内容时更新。

另一方面,http 缓存有一个叫做 ESI 的东西,你可以包含与主页具有不同缓存寿命的页面部分,这是完美的,但是

为什么我需要使用它? 或者比第一种方法有什么优势?

编辑

  • this is slimier to what i was after but still, why would u use/continue to use the reverse proxy over the below ?

https://laracasts.com/series/russian-doll-caching-in-laravel https://www.reddit.com/r/laravel/comments/3b16wr/caching_final_html_from_view/ https://github.com/laracasts/matryoshka

反向代理缓存有几个好处:

  • 代理服务的请求永远不会到达您的网络服务器。这通常是 cheaper/easier 扩展您的代理服务器(例如通过使用 像 Akamai 这样的商业供应商)而不是扩展你的 网络服务器。
  • 这意味着您可以在流量高峰和拒绝 服务攻击的压力要小得多。
  • 这也意味着你可以服务 不靠近您的原始网络服务器的流量要快得多 - 如果 您的网站服务于全球受众,延迟会对 您的感知响应时间。
  • 您也可以让您的网络服务器离线,例如进行升级,而不影响您的最终用户。

反向代理缓存的缺点:

  • 这是一个额外的架构层,带来了复杂性、维护、管理等问题
  • 它可能还需要额外费用(大多数站点都有单独的反向代理服务器基础设施,或使用商业 CDN 提供商)。
  • 您的解决方案设计需要管理更多层之间的缓存失效 - 这很容易变得复杂且容易出错。
  • 反过来,这意味着调试和测试解决方案可能非常困难。如果 QA 团队报告不正确的页面,您需要能够找出该项目的服务来源 - 反向代理、应用程序缓存、数据库?