【问题标题】:How caches system works for website缓存系统如何为网站工作
【发布时间】:2012-11-30 07:53:11
【问题描述】:

我搜索了缓存主题,结果如下

<meta http-equiv="Cache-control" content="description">

说明

Public - may be cached in public shared caches
Private - may only be cached in private cache
no-Cache - may not be cached
no-Store - may be cached but not archived

它们的真正含义是什么

1.公共共享缓存是否意味着文件将从代理缓存和网关缓存中下载

2.私有缓存是指浏览器缓存中引用的文件还是客户端系统中存储的缓存

3.当描述设置为无缓存时,它是否会从网络服务器加载新版本。每次页面加载时都会下载新文件。

4. 当他们说未存档时,他们的真正意思是什么。

请简要解释缓存的工作原理,而不是解释公共意味着每个人都可以访问,而私有意味着访问受限。

【问题讨论】:

    标签: php caching browser-cache cache-control


    【解决方案1】:

    引用http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1

    14.9.1 什么是可缓存

    默认情况下,如果请求的要求,响应是可缓存的 方法、请求头字段和响应状态表明 它是可缓存的。第 13.4 节总结了这些默认值 可缓存性。以下 Cache-Control 响应指令允许 源服务器覆盖响应的默认可缓存性:

    公开

    表示响应可以被任何缓存缓存,即使它通常是不可缓存的或只能在非共享的 缓存。 (有关更多详细信息,另请参阅授权,第 14.8 节。)

    私人

    表示响应消息的全部或部分是针对单个用户的,并且不得由共享缓存缓存。这允许一个 源服务器声明指定的部分 响应仅适用于一个用户,而不是对其他用户请求的有效响应。私有(非共享)缓存可以 缓存响应。

    注意:private这个词的使用只控制响应可能被缓存的地方,并不能保证消息的私密性 内容。无缓存

    如果 no-cache 指令未指定字段名,则缓存不得使用响应来满足后续请求 没有与原始服务器成功重新验证。这允许一个 源服务器以防止缓存,即使是已被缓存的缓存 配置为向客户端请求返回陈旧的响应。

    如果 no-cache 指令确实指定了一个或多个字段名,那么缓存可以使用响应来满足后续请求, 受到任何其他缓存限制。然而,指定的 不得在对后续请求的响应中发送字段名称 没有与原始服务器成功重新验证。这允许一个 源服务器,以防止重复使用某些标头字段 响应,同时仍然允许缓存响应的其余部分。

    注意:大多数 HTTP/1.0 缓存不会识别或遵守此指令。

    14.9.2 缓存可能存储的内容

    无商店

    no-store 指令的目的是防止无意中释放或保留敏感信息(对于 例如,在备份磁带上)。 no-store 指令适用于 整个消息,可以在响应或请求中发送。

    如果在请求中发送,缓存不得存储任何此内容的任何部分 请求或任何回应。如果在响应中发送,缓存不得 存储此响应或引发的请求的任何部分 它。该指令适用于非共享和共享缓存。 在这种情况下,“不得存储”意味着缓存不得 有意将信息存储在非易失性存储中,并且必须 尽最大努力从 volatile 中删除信息 转寄后尽快入库。

    即使此指令与响应相关联,用户也可能会在缓存系统之外显式存储此类响应 (例如,使用“另存为”对话框)。历史缓冲区可以存储这样的 响应作为其正常操作的一部分。

    本指令的目的是满足某些用户和服务作者提出的要求,他们关注 通过对缓存的意外访问意外释放信息 数据结构。虽然使用该指令可能会改善隐私 在某些情况下,我们警告说它绝不是可靠的或 保障隐私的充分机制。特别是恶意或 受损的缓存可能无法识别或遵守此指令,并且 通信网络可能容易被窃听。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2015-05-16
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 2012-07-08
      相关资源
      最近更新 更多