我读过请求是经过身份验证还是安全的,它不会被缓存。我们以前曾在我们的缓存上工作,现在计划购买SSL证书。
如果无法通过SSL连接进行缓存,那么这是否意味着我们对缓存的工作毫无用处?
答案 0 :(得分:1)
你的提法是错误的。通过https发送的内容将缓存在现代浏览器中,但它们显然无法缓存在中间代理中。例如,请参阅http://arstechnica.com/business/2011/03/https-is-great-here-is-why-everyone-needs-to-use-it-so-ars-can-too/或https://blog.httpwatch.com/2011/01/28/top-7-myths-about-https/。
答案 1 :(得分:0)
您可以使用Cache-Control: public
标头来缓存通过HTTPS提供的表示。
虽然您引用的文档是"If the request is authenticated or secure (i.e., HTTPS), it won’t be cached.",但它在以&#34开头的段落中; 一般来说,这些是遵循的最常见规则[...] "
同一文件详细介绍after this:
有用的
Cache-Control
响应标头包括:
public
- 将经过身份验证的响应标记为可缓存;通常,如果需要HTTP身份验证,响应将自动为私有。
(适用于带身份验证的HTTP也适用于HTTPS。)
显然,实际上包含仅针对经过身份验证的用户的敏感信息的文档不应该使用此标头,因为它们实际上不应该被缓存。但是,对于适合缓存的项目(例如,常见图像和脚本)使用此标头应该可以提高网站的性能(正如预期的那样,通过普通HTTP进行缓存)。
HTTPS永远不会发生的是中间代理服务器(在客户端和Web服务器之间,至少是外部部件,如果您有负载均衡器或类似服务器)之间的资源缓存。一些CDN将通过HTTPS提供内容(假设它适合您的系统信任这些CDN)。通常,这些代理服务器无论如何都不会受到缓存设计的控制。