HTTP/2 通过 TLS 访问静态登录页面。这值得么?
HTTP/2 over TLS for static landing page. Is it worth it?
所以我 运行 我正在销售 product/service 的静态登录页面,我们正在使用 AdWords 和类似的广告。当然,页面加载速度是最大化转化率的一个重要因素。
HTTP/2的优点:
- 数据更加压缩。
- 服务器推送允许在没有请求的情况下一次发送所有资源,这有很多好处,例如替换 base64 内嵌图像、精灵等
- 通过单个连接进行多路复用可显着缩短加载时间。
HTTP/2 的缺点:
1)强制TLS,加载速度变慢
所以我很伤心。一方面,HTTP/2 有很多改进。另一方面,继续避免不必要的 TLS 并继续使用 base64/sprites 来减少请求可能会更快。
页面总大小约为 1MB。
值得吗?
这 1000 kb 需要多少 HTTP 请求?对于这么大的页面,我认为这对最终用户体验来说并不重要。 TLS 将继续存在……我认为您不应该使用它,因为它可能会减慢您的网站速度。如果操作正确,它不会减慢您的网站速度。
阅读有关 SSL 不再缓慢的更多信息:https://istlsfastyet.com/
TLS 对现代硬件的性能影响is negligible。传输时间很可能受网络限制。的确,建立 TLS 会话需要额外的网络往返,但与传输 1MB 所需的时间相比,它可能可以忽略不计(广泛支持的 TLS 会话票证也节省了一次往返)。
证据表明降低加载速度绝对值得付出努力 (see the business case for speed)。
TLS 会话很麻烦,不幸的是浏览器供应商坚持使用它,因为 HTTP2 中没有任何内容可以阻止纯文本。对于低负载系统,如果 CPU 成本不是限制因素,TLS 基本上会花费您一个 RTT(网络往返时间)。
HTTP/2 和特别是 HTTP/2 推送可以为您节省很多 RTT,因此即使有 TLS 成本也可以是一个巨大的胜利。但确定这一点的最佳方法是在您的页面上进行尝试。确保您使用支持推送的 HTTP/2 服务器(例如 Jetty),否则您将无法获得所有好处。 Here is a good demo 使用 SPDY 推送(与 HTTP/2 中的机制相同):
如果强制 TLS 基于 SPDY/3.1 或 HTTP/2,则不会降低页面加载速度,因为两者都支持多路复用请求流。只有基于非 SPDY 或非 HTTP/2 的 TLS 会比非 https 慢。
查看 https://community.centminmod.com/threads/nginx-spdy-3-1-vs-h2o-http-2-vs-non-https-benchmarks-tests.2543/ 清楚地说明了为什么 SPDY/3.1 和 HTTP/2 over TLS 对于整体页面加载速度更快。 HTTP/2 允许同时在多个主机上进行多路复用,而 SPDY/3.1 允许每个主机进行多路复用。
最好的办法是同时测试非 https 和 HTTP/2 或 SPDY/3.1 https,看看哪个最适合您。由于您有一个静态登录页面,因此它使测试更容易进行。您可以执行与 https://h2ohttp2.centminmod.com/flags.html 页面类似的操作,您可以在同一服务器上同时设置 HTTP/2、SPDY 和非 https,并能够测试所有组合并进行比较。
所以我 运行 我正在销售 product/service 的静态登录页面,我们正在使用 AdWords 和类似的广告。当然,页面加载速度是最大化转化率的一个重要因素。
HTTP/2的优点:
- 数据更加压缩。
- 服务器推送允许在没有请求的情况下一次发送所有资源,这有很多好处,例如替换 base64 内嵌图像、精灵等
- 通过单个连接进行多路复用可显着缩短加载时间。
HTTP/2 的缺点:
1)强制TLS,加载速度变慢
所以我很伤心。一方面,HTTP/2 有很多改进。另一方面,继续避免不必要的 TLS 并继续使用 base64/sprites 来减少请求可能会更快。
页面总大小约为 1MB。
值得吗?
这 1000 kb 需要多少 HTTP 请求?对于这么大的页面,我认为这对最终用户体验来说并不重要。 TLS 将继续存在……我认为您不应该使用它,因为它可能会减慢您的网站速度。如果操作正确,它不会减慢您的网站速度。
阅读有关 SSL 不再缓慢的更多信息:https://istlsfastyet.com/
TLS 对现代硬件的性能影响is negligible。传输时间很可能受网络限制。的确,建立 TLS 会话需要额外的网络往返,但与传输 1MB 所需的时间相比,它可能可以忽略不计(广泛支持的 TLS 会话票证也节省了一次往返)。
证据表明降低加载速度绝对值得付出努力 (see the business case for speed)。
TLS 会话很麻烦,不幸的是浏览器供应商坚持使用它,因为 HTTP2 中没有任何内容可以阻止纯文本。对于低负载系统,如果 CPU 成本不是限制因素,TLS 基本上会花费您一个 RTT(网络往返时间)。
HTTP/2 和特别是 HTTP/2 推送可以为您节省很多 RTT,因此即使有 TLS 成本也可以是一个巨大的胜利。但确定这一点的最佳方法是在您的页面上进行尝试。确保您使用支持推送的 HTTP/2 服务器(例如 Jetty),否则您将无法获得所有好处。 Here is a good demo 使用 SPDY 推送(与 HTTP/2 中的机制相同):
如果强制 TLS 基于 SPDY/3.1 或 HTTP/2,则不会降低页面加载速度,因为两者都支持多路复用请求流。只有基于非 SPDY 或非 HTTP/2 的 TLS 会比非 https 慢。
查看 https://community.centminmod.com/threads/nginx-spdy-3-1-vs-h2o-http-2-vs-non-https-benchmarks-tests.2543/ 清楚地说明了为什么 SPDY/3.1 和 HTTP/2 over TLS 对于整体页面加载速度更快。 HTTP/2 允许同时在多个主机上进行多路复用,而 SPDY/3.1 允许每个主机进行多路复用。
最好的办法是同时测试非 https 和 HTTP/2 或 SPDY/3.1 https,看看哪个最适合您。由于您有一个静态登录页面,因此它使测试更容易进行。您可以执行与 https://h2ohttp2.centminmod.com/flags.html 页面类似的操作,您可以在同一服务器上同时设置 HTTP/2、SPDY 和非 https,并能够测试所有组合并进行比较。