当前位置:  开发笔记 > 后端 > 正文

我必须做些什么才能使通过HTTPS提供的图像等内容在客户端缓存?

如何解决《我必须做些什么才能使通过HTTPS提供的图像等内容在客户端缓存?》经验,为你挑选了2个好方法。

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



1> Dave Cheney..:

如果您通过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



2> MarkR..:

有些浏览器会缓存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

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有