为什么https在我的apache服务器中比http更快?

时间:2013-05-11 06:28:58

标签: apache http ssl https page-load-time

服务器信息:

$ httpd -v 
Server version: Apache/2.2.24 (Unix)
Server built:   May  8 2013 15:17:37

我使用openssl创建自签名SSL证书。

测试代码(带有selenium webdriver的Java):

      long startTime, useTime = 0, t;
      int count = 10;
      for (int i = 0; i < count; i++) {
         ChromeDriver driver = new ChromeDriver(capabilities);
         startTime = System.nanoTime();
         driver.get("https://*.*.*.*/pic.html");
         //When testing Http,it will be:driver.get("http://*.*.*.*/pic.html");
         //pic.html is a simple page with many images.
         t = System.nanoTime() - startTime;
         useTime += t;
         driver.quit();
      }
      System.out.println("Average Time: " + useTime/1000000.0/count +" ms");

结果:

HTTPs:Average Time: 1718.13659 ms
HTTP:Average Time: 2484.122677 ms

提前致谢。

2 个答案:

答案 0 :(得分:3)

使用https可能还可以对内容进行透明压缩。为压缩和加密添加的时间(当然是后退)可能少于通过慢速链接传输较少内容所节省的时间。

您可以通过以下方式验证:

  • 使用不可压缩内容(例如大型JPEG图像)
  • 显着加快转移链接(例如,使用“localhost”)

答案 1 :(得分:0)

因为Apache和chrome(我看到你正在使用chromedriver)都支持http2.0,这种情况由于加密以外的原因而更快,但仅适用于加密。