一尘不染

要使诸如HTTPS上的图像之类的内容被缓存在客户端,我该怎么办?

tomcat

我将Tomcat用作服务器,将Internet Explorer
6用作浏览器。我们应用程序中的网页包含约75张图像。我们正在使用SSL。加载所有内容似乎很慢。如何配置Tomcat,以便IE缓存图像?


阅读 261

收藏
2020-06-16

共1个答案

一尘不染

如果您通过https提供网页,则需要通过https(来自同一域或另一个域,也通过https)提供所有包含的静态或动态资源,以避免浏览器中出现安全警告。

默认情况下,大多数浏览器不会将通过安全通道传送的内容写入磁盘,因此它们位于浏览器的内存缓存中,该缓存比磁盘缓存小得多。当应用程序退出时,该缓存也会消失。

综上所述,您可以在单个浏览器设置中采取一些措施来提高SSL资产的可缓存性。对于初学者,请确保所有资产都具有合理的Expires和Cache-
Control标头。如果tomcat坐在Apache后面,则使用mod_expires添加它们。这样可以避免浏览器检查页面之间的图像是否已更改

<Location /images>
   FileEtag none
   ExpiresActive on
   ExpiresDefault "access plus 1 month"
</Location>

其次,这是特定于MSIE和Apache的,大多数apache ssl配置包含以下行

SetEnvIf User-Agent ".*MSIE.*" \
     nokeepalive ssl-unclean-shutdown \
     downgrade-1.0 force-response-1.0

这将禁用所有MSIE代理的keepalive。恕我直言,这太保守了,最近使用SSL出现问题的MSIE浏览器是5.x和6.0 pre
SP2的未修补版本,这两种情况现在都很少见。以下内容比较宽松,使用MSIE和SSL时不会禁用保持活动状态

BrowserMatch "MSIE [1-4]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [5-9]" ssl-unclean-shutdown
2020-06-16