2008-09-16 49 views

回答

10

如果您通过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 CONFIGS包括这些线路

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

它禁用保活适用于所有MSIE代理商。恕我直言,这太过于保守了,使用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 
-1

通过HTTPS连接提供的内容永远不会在浏览器中缓存。你不能做太多的事情。

通常情况下,您的网站上的图像不是非常敏感,并且由于这个原因通过HTTP提供服务。

2

75张图像听起来很多。如果是很多小图像,可以将许多图像捆绑为一个,您可能会看到是否可以找到能够实现这一点的库。您也可以强制将图像缓存在google gears之类的内容中。

-1

第一个答案是正确的,使用HTTPS时不会缓存任何内容。但是,当您构建网页时,您可能会考虑通过各自的URL引用图像。通过这种方式,您可以将图像指定为源自HTTP源的图像,并且它们(很可能)会被浏览器缓存。

5

某些浏览器会缓存SSL内容。 Firefox 2.0+默认不会在磁盘上缓存SSL资源(为了增加隐私)。除非出现Cache-control:public header,否则Firefox 3 +不会将它们缓存在光盘上。

所以正确设置Expires:标题和Cache-control:public。例如

<Files ~ "\.(gif|jpe?g|png|ico|css|js|cab|jar|swf)$"> 
     # 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 
</Files> 
-1

也许你可以添加一个额外的服务器/子域提供的图像没有HTTPS?

相关问题