我们正在尝试在公司网络中部署 Google Chrome,但我们发现与 IE 相比,加载 https 页面(尤其是我们自己的内部页面)所需的时间是 2-4 倍。有人遇到过这种情况并找到了解决方法吗?
更新
根据 Handyman5 的建议,我在 Chrome 中运行了一些诊断程序,发现大部分时间(每个页面超过 90%)都花在从缓存中提取静态文件并呈现页面上。但是,如果我关闭我们网站上的 SSL,这几乎是即时的。
有什么想法可以解释为什么会这样吗?
答案1
Chrome 有一个很棒的内置诊断工具,“关于:网络内部”,旨在帮助解决网络问题。具体来说,它有一个“事件”选项卡,可让您指定一个 URL,然后 Chrome 会逐步分解加载该 URL 的整个过程,包括 DNS 解析、缓存命中和 AJAX 元素请求。
答案2
tl;dr 检查 Chrome 如何处理证书检查和撤销。
我之前工作过的一家工厂也遇到过类似的问题,不过使用的是 Firefox。如果要说这是个问题,您需要确认问题仅出在 https 页面上。 如果不是,那就没什么区别。
使用 Firefox(我知道,我知道,我可以读懂,即将指出),许多人遇到了问题,而 Internet Explorer 用户(如果你能相信的话)没有。我们使用了臭名昭著的 ipsCA 机构,因为它们对教育机构是免费的,但最终 Firefox 的阴暗行为激怒了他们,而 OCSP 检查证书才是罪魁祸首。结果发现浏览器由于处理证书吊销列表而延迟,这是由于我们的 SSL 证书的性质。您显然是我们中最好的,没有提到您的 Chrome 版本,因此很难说它是否是一个问题还是一个问题。不过,我会在 Chrome 中检查 CRL 配置。在 Firefox 中这样做可以缓解这个问题。另外,检查您的证书是否处于良好状态,即它们是否是自签名的。我们放弃自签名的原因是我们放弃了它,因为我们服务的愚蠢用户抱怨很多,而且它是免费的。我们以为我们是在为自己省心,但我们却让事情变得更糟。
答案3
我们在内部部署了 Google Chrome,以支持在普通 HTTP 上运行的定制开发应用程序(在 ASP.NET MVC 上)。
由于缓存,我们还遇到了页面加载缓慢的问题。Chrome 似乎在每次加载页面时都会提取所有静态文件,而不是将它们保存在缓存中。我们最终只是在应用程序中添加了 expires 标头以强制启用缓存,这有效。
您可以按照这条路线走(修改您的网络应用程序以指定每种文件类型的缓存策略),或者进一步研究 Chrome 的默认缓存行为。
其他人似乎也有类似的问题(例如http://www.google.com/support/forum/p/Chrome/thread?tid=741fd9e03cfb7e7b&hl=en)。
这篇文章可能会有用,因为它提供了有关 Chrome 缓存的入门知识:http://gent.ilcore.com/2011/02/chromes-10-caches.html
答案4
最后,我在这里找不到答案。所有监控和分析测试都表明,Google Chrome 从本地客户端缓存加载安全静态内容的速度非常慢。不知道为什么。我们不得不让所有内部用户切换到 IE(大多数在网络上遇到类似问题的人都是这么做的)。