【发布时间】:2010-11-30 22:01:53
【问题描述】:
2013 年 4 月 25 日更新:
这是一个受欢迎的问题,得到的关注超出了应有的程度。为了阻止错误信息的传播,请先阅读以下段落和随附的文章:
速度不应成为决定使用 HTTPS 还是 HTTP 的因素。如果您需要 HTTPS 用于您网站的任何部分(登录、注册、信用卡等),您绝对需要 HTTPS 来处理所有内容强>,一直如此。
请阅读Troy Hunt的SSL is not about encryption了解原因。
我正在考虑在 https 下运行我的整个电子商务网站。我决定运行一个粗略的基准测试来测量通过 https 与 http 的 156KB 图像的下载时间,因为我读到 https 承受着加密过程的额外开销。
使用 Firefox 的 Firebug 执行基准测试,只需在从空缓存下载图像时将“等待”和“接收”时间(所有其他时间均为 0)从网络面板转录到 Excel。
我的结果出乎意料:
http: 11.233 seconds
Waiting Receiving Total
1.56 0.88 2.44
1.55 0.101 1.651
1.53 0.9 2.43
1.71 0.172 1.882
1.9 0.93 2.83
https: 9.936 seconds
Waiting Receiving Total
0.867 1.59 2.457
0.4 1.67 2.07
0.277 1.5 1.777
0.536 1.29 1.826
0.256 1.55 1.806
[明显] 来自基准的观察结果:
- 服务器响应速度更快,但 https 的下载时间比 http 慢。
- 总体而言,https 的速度要快很多 (~10%)。
谁能解释为什么会发生这种情况?
您认为文档(html、css、javascript)会给出不同的结果吗?
有没有人有更好的下载基准测试方法?
这是测试图像:
[删除测试图像]
附加信息:
- 该网站位于 Godaddy.com 的共享主机帐户上。
- 如果您打算运行自己的基准测试,请不要添加“www”子域...无论如何我都会使用根目录来存储静态内容。
- 在集成管道模式下使用 IIS7。
编辑:1px GIF(35 字节)的基准测试如下:
http: 2.666 seconds
Waiting Receiving Total
0.122 0.31 0.432
0.184 0.34 0.524
0.122 0.36 0.482
0.122 0.34 0.462
0.126 0.64 0.766
https: 2.604 seconds
Waiting Receiving Total
0.25 0.34 0.59
0.118 0.34 0.458
0.12 0.34 0.46
0.182 0.31 0.492
0.134 0.47 0.604
结果: https 还是更快;虽然在这种情况下微不足道。
如果有人发现我的基准测试中有缺陷,请告诉我,以便我发布更好的结果。
因此,在下午 6:00 左右的 Godaddy 共享主机上,我通过 https 提供的特定服务器内容比通过 http 更快。
【问题讨论】:
-
你在压缩这两个请求中的任何一个吗?
-
没有。没想到你可以 GZip 图像。
-
您能否在每次请求后重新启动 Firefox 进行测试,以强制执行完整的 https 握手,就像客户端从不同位置连接一样?
-
当然,我明天试试。但是,由于用户在每次请求之间都没有重新启动浏览器,因此初始握手可能并不那么重要。我会再研究一下。
-
您甚至可以在图像上设置字符集,例如 UTF-8 和浏览器(至少 ff)尝试从图像中删除 utf-8 编码,因为它不是 utf-8编码图像被破坏。 (在更改我的服务器上的配置后,我发现它甚至将 charset-header 添加到图像中)
标签: http ssl https benchmarking download-speed