http2域分片而不会影响性能

问题描述 投票:1回答:1

大多数文章都认为使用域分片会损害性能,但实际上并不完全正确。在某些条件下,单个连接可以重用于不同的域:

  • 他们决定使用相同的IP
  • 在安全连接的情况下,相同的证书应涵盖两个域

https://tools.ietf.org/html/rfc7540#section-9.1.1

那是对的吗?有人用吗?

那CDN呢?我能否保证他们将用户引导到同一服务器(IP)?

cdn sharding http2
1个回答
2
投票

Yup这是HTTP / 2的优势之一,理论上允许您为HTTP / 1.1用户保留分片,并自动为HTTP / 2用户不熟练。

实际情况总是有点复杂 - 主要是因为实施问题和服务器在您声明时解析为不同的IP地址。这篇博文现在已有几年了,但描述了一些问题:https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing/。也许它从那时起有所改善,但可以想象问题仍然存在。此外,像ORIGIN frame这样的新功能应该会有所帮助,但尚未获得广泛支持。

我认为值得重新考虑的是,分片实际上对HTTP / 1.1有好处。设置新连接(DNS查找,TCP设置,TLS握手,然后是实际发送的HTTP消息)的成本并不重要,研究表明6连接浏览器限制确实使用,不用担心通过分片添加更多。连接,spriting和内联通常是更好的选择,这些仍然可以用于HTTP / 2。在您的网站上试一试,衡量是确保这一点的最佳方式!

顺便说一下,出于这些原因(和安全性),我不太热衷于从他们的CDN使用公共库(例如jquery,bootstrap ......等)而不是在本地托管。在我看来,已经拥有您网站使用的版本已经缓存的用户的性能优势已经过时。

有了这些东西,HTTP / 1.1仍然可以在没有分片域的情况下工作。它可能(可以说)较慢但不会破裂。但大多数用户are likely on HTTP/2是否真的值得为少数用户添加复杂性?这不是为现代浏览器上的人们逐步增强您的网站(并鼓励那些不升级)的方式吗?对于较大的网站(例如谷歌,Facebook等),少数群体可能仍然代表大量用户,而且我们其他人的复杂性是值得的(并且他们有资源和专业知识来处理它),我的建议不要碎片,升级到新的协议,如HTTP / 2,当它们变得普遍时(就像它现在!),但另外要降低复杂性。

© www.soinside.com 2019 - 2024. All rights reserved.