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

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

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

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

请简要解释缓存的工作原理,而不是解释每个人都可以访问的公共手段和私人手段有限的访问权限。

4

1 回答 1

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 指令适用于整个消息,并且可以在响应或请求中发送。

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

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

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

于 2012-11-30T07:59:46.123 回答