通过https请求的内容仍然会被网络浏览器缓存,还是他们认为这种行为不安全?如果是这样,有没有办法告诉他们缓存是可以的?


当前回答

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

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

其他回答

默认情况下,web浏览器应该在HTTPS上缓存内容,就像在HTTP上缓存内容一样,除非通过接收到的HTTP头显式地告知。

这个链接很好地介绍了如何在HTTP报头中设置缓存设置。

有办法告诉他们缓存是可以的吗?

这可以通过设置Cache-Control头中的max-age值为非零值来实现。

Cache-Control: max-age=3600

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

截至2010年,所有现代的浏览器都默认缓存HTTPS内容,除非被明确告知不这样做。

不需要设置cache-control:public来实现这种情况。

来源:Chrome, IE, Firefox。

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

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