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

标签 performance tomcat ssl https

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

最佳答案

如果您通过 https 提供页面,那么您需要通过 https(来自同一域或其他域,也通过 https)提供所有包含的静态或动态资源,以避免在浏览器中出现安全警告.

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

综上所述,您可以采取一些措施来提高单个浏览器设置中 SSL Assets 的缓存能力。对于初学者,请确保您的所有 Assets 都具有合理的 Expires 和 Cache-Control header 。如果 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 代理的保活。恕我直言,这太保守了,最后一个使用 SSL 有问题的 MSIE 浏览器是 5.x 和 6.0 pre 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

关于performance - 我必须做什么才能使通过 HTTPS 提供的图像等内容缓存在客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72358/

相关文章:

networking - 发送 WCF 消息在负载下被延迟

java - 两个服务器,每个服务器用于 HTML 和 Java Jersey Rest API 或单个 Tomcat Web 应用程序

java - 收到致命警报:SSLHandshakeException中的handshake_failure

ipad - iOS 阻止 HTTPS 请求

c# - 更高效的集成循环

java - 有效获取 SOAPBody 长度

Android sql事务性能

java - 如何在 Eclipse 中更改 tomcat 默认部署目录?

java - 分布式 session 处理

java - java - 如何使用java keystore而不是证书和 key 文件在java中使用ssl实例化grpc服务器?