网络浏览器是否会通过https缓存内容


245

通过HTTPS请求的内容是否仍将由网络浏览器缓存,或者它们是否认为这种不安全行为?如果是这种情况,无论如何告诉他们可以缓存吗?


是的浏览器会缓存通过HTTPS内容检查此链接neopatel.blogspot.com/2010/02/...
Kalpesh帕特尔

@KalpeshPatel,这取决于用户设置。有些国家已建立缓存,以残疾人为所有 HTTPS网页blogs.msdn.com/b/ieinternals/archive/2010/04/21/...
Pacerier

Answers:


134

默认情况下,除非通过接收到的HTTP标头明确告知,否则Web浏览器应通过HTTPS缓存内容与通过HTTP缓存内容相同。

该链接很好地介绍了在HTTP标头中设置缓存设置。

无论如何告诉他们可以缓存吗?

这可以通过将标头中的max-age值设置为Cache-Control非零值来实现,例如

Cache-Control: max-age=3600

会告诉浏览器该页面可以缓存3600秒(1小时)


如果用户访问mysite.com并下载style.css,则当他们访问mysite.com时会再次请求style.css吗?
弗兰克

12
我不确定我们是否在同一页面上。我们是在谈论默认情况下是否将缓存HTTPS内容,还是在假设某些HTTP响应标头的情况下询问是否将其缓存?您从Mark Nottingham链接到的Web缓存教程的链接实际上表明,除非缓存控制标头指示它是公共内容,否则不会缓存安全(即HTTPS)或经过身份验证的内容。
爱德华·施特恩


1
Firefox在几年前取消了对Cache-Control的要求。
GreenReaper 2015年

1
这句话“网络浏览器应通过HTTPS缓存内容”对我来说是错误的。他们为什么要这么做呢?另外,请检查以下铬团队的成员的评论“ code.google.com/p/chromium/issues/detail?id=110649#c6 “他说“实际上没有任何东西被缓存(在持久缓存上)”
Teoman shipahi 2015年

192

截至2010年,除非明确告知不要,否则所有当前流行的现代浏览器默认都会缓存HTTPS内容。

要求设置cache-control:public要做到这一点。

资料来源:ChromeIEFirefox


6
这样看来,总体趋势是允许缓存HTTPS对象。这通常是一件好事,因为开发人员应该告诉浏览器,如果它们对隐私敏感,则根本不要缓存对象,并允许它们在不敏感的对象(例如图像,css)中这样做。在HTTPS上)。感谢那。
MarkR

2
是否符合RFC的要求以自动缓存HTTPS资源而没有cache-control:public
Pacerier,2014年

@Pacerier浏览器将RFC文字视为“请求注释”。RFC通常会更改以反映浏览器中已经存在的内容。
gcb 2014年

0

默认情况下会缓存Https。这是由不能由应用程序定义的高速缓存指令覆盖的全局设置来管理的。要覆盖全局设置,请在控制面板中选择“ Internet选项”小程序,然后转到“高级”选项卡。选中“安全性”部分下的“不将加密的页面保存到磁盘”框,但是仅使用HTTPS不会影响IE是否决定缓存资源。

WinINet仅缓存HTTP和FTP响应,而不缓​​存HTTPS响应。 https://msdn.microsoft.com/zh-CN/library/windows/desktop/aa383928%28v=vs.85%29.aspx

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.