http和https之间在性能上有什么主要区别吗?我似乎还记得阅读过的文章,HTTPS的速度可以是HTTP的五分之一。这对于当前的网络服务器/浏览器有效吗?如果是这样,是否有任何白皮书来支持它?

最佳答案

有一个非常简单的答案:配置Web服务器的性能,以查看针对您的特定情况的性能损失。 有很多工具可以比较HTTP与HTTPS服务器的性能(想到了JMeter和Visual Studio),它们非常易于使用。

没有有关网站的性质,硬件,软件和网络配置的某些信息,没有人能给您一个有意义的答案。

正如其他人所说,由于加密,会产生一定程度的开销,但它高度依赖于:

  • 硬件
  • 服务器软件
  • 动态内容与静态内容的比率
  • 客户端到服务器的距离
  • 典型 session 长度
  • Etc(我个人最喜欢的)
  • 客户端的缓存行为

  • 以我的经验,由于内容加密所花的时间(SSL开销)与内容生成时间相比微不足道,因此对动态内容非常重视的服务器受HTTPS的影响较小。

    大量服务于可以轻松地缓存在内存中的静态页面集的服务器遭受了更高的开销(在一种情况下,吞吐量被“内部网”所吞没)。

    编辑:其他几个人提出的一个观点是SSL握手是HTTPS的主要成本。没错,这就是为什么“典型 session 长度”和“客户端的缓存行为”很重要的原因。

    许多非常短的 session 意味着握手时间将压倒任何其他性能因素。较长的 session 将意味着握手成本将在 session 开始时发生,但是后续请求的开销相对较低。

    客户端缓存可以分几步完成,从大型代理服务器到单个浏览器缓存,可以随时随地进行。通常,HTTPS内容不会缓存在共享缓存中(尽管少数代理服务器可以利用中间人行为来实现这一目的)。许多浏览器会为当前 session 缓存HTTPS内容,并且经常跨 session 缓存HTTPS内容。不缓存或缓存较少的影响意味着客户端将更频繁地检索相同的内容。这导致更多的请求和带宽可以服务于相同数量的用户。

    关于performance - HTTP vs HTTPS性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/149274/

    10-11 22:52
    查看更多