我使用Tomcat作为服务器,使用Internet Explorer 6作为浏览器.我们的应用程序中的网页有大约75张图片.我们正在使用SSL.加载所有内容似乎很慢.如何配置Tomcat以便IE缓存图像?
如果您通过https提供页面,则需要通过https(来自同一域或其他域,也可以通过https)提供所有包含的静态或动态资源,以避免浏览器中出现安全警告.
大多数浏览器默认不会将通过安全通道传送的内容写入磁盘,因此存储在浏览器内存缓存中,这比磁盘缓存小得多.应用程序退出时,此缓存也会消失.
尽管如此,您可以采取一些措施来改善单个浏览器设置中SSL资产的可扩展性.对于初学者,请确保所有资产都具有合理的Expires和Cache-Control标头.如果tomcat位于apache后面,那么使用mod_expires添加它们.这将避免浏览器必须检查图像是否在页面之间发生了变化
FileEtag none ExpiresActive on ExpiresDefault "access plus 1 month"
其次,这是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 SP2的未修补版本,现在这两种情况都非常罕见.以下是更宽松的,并且在使用MSIE和SSL时不会禁用keepalive
BrowserMatch "MSIE [1-4]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [5-9]" ssl-unclean-shutdown
有些浏览器会缓存SSL内容.默认情况下,Firefox 2.0+不会在磁盘上缓存SSL资源(以增加隐私).除非出现Cache-control:public标头,否则Firefox 3+不会将它们缓存在光盘上.
因此,正确设置Expires:标头,并设置Cache-control:public.例如
# Expire these things # Three days after access time ExpiresDefault "now plus 3 days" # This makes Firefox 3 cache images over SSL Header set Cache-Control public