http和https在性能上有什么主要的区别吗?我似乎记得读到过HTTPS的速度是HTTP的五分之一。这对当前的web服务器/浏览器有效吗?如果有,是否有相关白皮书支持?


当前回答

一个更重要的性能差异是HTTPS会话在用户连接时保持打开。一个HTTP“会话”只持续一个项目请求。

如果你正在运行一个有大量并发用户的网站,预计会购买大量内存。

其他回答

有一种方法可以衡量这一点。来自apache的jmeter工具将测量吞吐量。如果您在受控环境中使用jmeter对您的服务进行了大量采样,无论是否使用SSL,都应该得到相对成本的准确比较。我对你的结果很感兴趣。

除了到目前为止提到的所有内容,请记住,出于安全原因,一些(所有?)web浏览器不会将通过HTTPS获得的缓存内容存储在本地硬盘上。这意味着,从用户的角度看,在浏览器重启后,含有大量静态内容的页面加载速度会变慢,而从服务器的角度看,通过HTTPS请求静态内容的量将比通过HTTP请求的量要高。

Browsers can accept HTTP/1.1 protocol with either HTTP or HTTPS, yet browsers can only handle HTTP/2.0 protocol with HTTPS. The protocol differences from HTTP/1.1 to HTTP/2.0 make HTTP/2.0, on average, 4-5 times faster than HTTP/1.1. Also, of sites that implement HTTPS, most do so over the HTTP/2.0 protocol. Therefore, HTTPS is almost always going to be faster than HTTP simply due to the different protocol it generally uses. However, if HTTP over HTTP/1.1 is compared with HTTPS over HTTP/1.1, then HTTP is slightly faster, on average, than HTTPS.

以下是我使用Chrome(版本64)运行的一些比较:

HTTPS over HTTP/1.1:

0.47秒的平均页面加载时间 在HTTP/1.1上比HTTP慢0.05秒 比HTTP/2.0上的HTTPS慢0.37秒

HTTP over HTTP/1.1

0.42秒的平均页面加载时间 比HTTP/1.1上的HTTPS快0.05秒 比HTTP/2.0上的HTTPS慢0.32秒

HTTPS over HTTP/2.0

平均加载时间0.10秒 在HTTP/1.1上比HTTP快0.32秒 比HTTPS/1.1快0.37秒

这里似乎有一个令人讨厌的边缘情况:Ajax胜过拥塞的wifi。

Ajax通常意味着KeepAlive在20秒后超时。然而,wifi意味着(理想的快速)ajax连接必须进行多次往返。更糟糕的是,wifi经常丢包,并且有TCP重传。在这种情况下,HTTPS执行得非常非常糟糕!

2014年12月更新

您可以使用AnthumChris的HTTP vs HTTPS测试网站在自己的浏览器中轻松测试HTTP和HTTPS性能之间的差异:“此页面测量其在不安全的HTTP和加密的HTTPS连接上的加载时间。这两个页面都加载了360张独特的非缓存图像(总计2.04 MB)。”

结果可能会让你大吃一惊。

拥有最新的HTTPS性能知识是很重要的,因为让我们加密证书权威机构将在2015年夏天开始发布免费、自动化和开放的SSL证书,这要感谢Mozilla、Akamai、Cisco、电子前沿基金会和IdenTrust。

2015年6月更新

Let 's Encrypt更新-到2015年9月:

Let’s Encrypt Launch Schedule(2015年6月16日) 让我们加密根证书和中间证书(2015年6月4日) Let's Encrypt订阅协议草案(2015年5月21日)

更多推特信息:@letsencrypt

有关HTTPS和SSL/TLS性能的更多信息,请参阅:

TLS快吗? 高性能浏览器网络,第4章:传输层安全 超频SSL SSL处理的解剖和性能

有关使用HTTPS的重要性的更多信息,请参阅:

为什么什么都用HTTPS ?(仅https标准) Let 's Encrypt(互联网安全研究组) HTTPS无处不在(电子前沿基金会)

总而言之,让我引用Ilya Grigorik的话:“TLS只有一个性能问题:它的应用不够广泛。其他一切都可以优化。”

感谢Chris (HTTP vs HTTPS测试基准的作者)在下面给出的评论。