2012-11-30 30 views
3

我已搜查缓存主题和我在下面高速缓存系统的工作原理网站

<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.Does公众共享缓存意味着文件将从代理缓存和网关缓存中下载。

2.是否使用私有卡ches表示在客户端系统中存储的浏览器高速缓存或高速缓存中引用的文件

3.当描述设置为no-Cache时,是否会从Web服务器加载新版本。每次下载新文件时页面加载。

4.当他们说不存档时,他们的真正含义是什么?

请简要解释缓存如何工作,而不是解释所有人都可访问的公共方法,私人方式意味着访问受限。

回答

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指令没有指定字段名,那么缓存不得使用该响应来满足后续请求 而不成功地对源服务器进行重新验证。这允许 原始服务器甚至通过配置为将 配置为对客户端请求返回陈旧响应的高速缓存来防止高速缓存。

如果no-cache指令没有指定一个或多个字段名称,则缓存可以使用该响应来满足随后的请求,这受到对缓存的任何其他限制。但是,指定的 字段名不得在对后续请求 的响应中发送,而不会对源服务器成功重新生效。这允许 原始服务器阻止重新使用 响应中的某些头字段,同时仍允许缓存其余响应。

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

14.9.2什么可以被缓存存储

无店铺

无店铺指令的目的是为了防止敏感信息的意外泄露或保留(用于 例如,在备份磁带上)。无存储指令适用于整个消息,并且可以通过响应或请求发送。

如果在请求中发送,缓存不得存储这个 请求的任何部分或对它的任何响应。如果在响应中发送,缓存不得存储此响应的任何部分或引起 的请求。该指令适用于非共享和共享高速缓存。 “不得存储”在这种情况下,意味着缓存不得有意将信息存储在非易失性存储器中,并且必须尽快尝试在转发之后尽快从易失性存储器中删除信息。

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

该指令的目的是为了满足某些用户和服务作者关于 通过意外访问缓存数据结构意外发布的信息的要求。虽然在某些情况下使用此指令可能会提高隐私 ,但我们提醒您,它绝不是可靠的或足以确保隐私的机制。特别是,恶意或者被破坏的缓存可能无法识别或遵守该指令,并且通信网络可能容易被窃听。

+0

感谢您的回复 – ArrayOutOfBound