首页 >科技周边 >IT业界 >http/2:优点,缺点和您需要知道的

http/2:优点,缺点和您需要知道的

Jennifer Aniston
Jennifer Aniston原创
2025-02-19 10:02:10865浏览

HTTP/2:网页加载速度的革命性提升

HTTP/2是对HTTP/1.1的重大升级,旨在解决性能问题并缩短网站加载时间。它通过多路复用流、服务器推送、报头压缩和二进制格式等特性实现这一目标。

多路复用允许通过单个TCP连接同时发送多个请求和响应,从而减少拥塞并提高速度。服务器推送主动将资源发送到浏览器的缓存中,从而提高性能。报头压缩减少了数据检索时间和带宽使用。二进制格式更容易处理,从而减少了服务器工作负载和页面加载时间。

HTTP/2: the Pros, the Cons, and What You Need to Know

开发者将不再需要使用诸如图像雪碧图、内联和文件连接等解决方法来减少网页上的请求数量。然而,大多数支持HTTP/2的浏览器都需要HTTPS加密,这可能会对一些考虑切换的用户构成挑战。

HTTP/2: the Pros, the Cons, and What You Need to Know

尽管HTTP/2有很多优点,但它也因过于关注带宽而忽略了隐私问题而受到批评。有人认为,由于技术的快速发展以及需要更灵活的协议来应对不断变化的技术挑战,HTTP/2可能不会持续很长时间。

HTTP/1.1的工作方式

当您访问网页时,浏览器通过向Web服务器请求页面的所有资源来获取该页面。自从Web诞生以来,这主要通过HTTP/1.1完成。

随着时间的推移,技术不断发展,网站变得越来越复杂和资源密集,HTTP/1.1协议承受着越来越大的压力,需要许多变通方法来处理性能问题。

如今的网页通常包含大量资源,例如图像、文本、字体等,这使得它们比90年代甚至2000年代的网页要重得多。因此,它们的加载时间更长,因此网页设计师和开发人员想出了巧妙的变通方法来解决这个问题。然而,很明显,HTTP协议本身需要更新。

HTTP/2的工作方式

您的浏览器仍然会向服务器发送请求并接收所需资源的响应,以便网页能够正常显示,但两者之间的细微差别将会改变。HTTP/2引入了多路复用流、服务器推送、报头压缩和二进制格式等新特性,我们将依次探讨这些特性。

  • 多路复用流: 多路复用通过将这些资源分成更小的部分,通过一个连接传递它们,然后在它们到达最终目的地(浏览器)后重新组装资源,从而消除了由许多连接传递资源(如文本、字体和图片)造成的拥塞问题。

  • 服务器推送: 服务器推送代表了一种更高效的向浏览器交付资源的方式。在HTTP/1环境中,HTML页面被发送到浏览器,浏览器必须解析它并确定它可能需要的资源,然后向服务器请求这些资源。HTTP/2在这方面更主动,它在浏览器不需要请求的情况下发送浏览器可能需要的资源。这些资源进入浏览器的缓存,并在需要时立即可用,这对性能来说是一个优势。

  • 报头压缩: 在HTTP/1中,每个发送的请求都附加了一小部分附加数据——HTTP报头——描述浏览器或服务器的行为方式。平均而言,浏览器一次大约可以建立6个连接,但考虑到加载典型网页所需的连接数量可能高达100个,这仍然需要检索大量数据,这需要时间和带宽。当建立HTTP/2连接时,所有报头都打包成一个压缩块作为一个整体发送。它传输速度更快,传输完成后,报头块被解码。

  • 二进制格式代替文本格式: 文本格式有一些额外的开销,需要改进,而二进制格式不需要任何解析。它也更紧凑。服务器的额外工作意味着需要额外的时间来等待网页加载。这就是为什么二进制格式更容易处理,是一个合理的改进。

HTTP/2: the Pros, the Cons, and What You Need to Know

开发者现在可以做些什么不同的事情

开发者将不再需要进行图像雪碧图处理、内联和文件连接,因为不需要减少网页上的请求数量。基本上,这将是他们日常工作中最大的变化。然而,关于可能以某种方式影响他们工作的内部变化,还有更多需要说明的地方。

需要注意的事项

虽然HTTP/2规范本身并不强制要求,但大多数支持HTTP/2的浏览器都需要HTTPS加密。这意味着,如果您的HTTP/2站点不是通过加密连接提供的,访问者要么必须找到其他客户端来访问您的站点,要么错过它。

尽管现在有一些推动站点通过HTTPS提供的趋势,但浏览器对这一要求提出了批评,并且无疑将成为一些考虑切换到HTTP/2的人面前的绊脚石。(有关HTTPS是什么以及如何实现它的更多技巧,请阅读SitePoint最近对HTTPS的介绍。)

对于公众来说,网络的过渡将是无缝的。新协议版本工作所需的修改和升级将在服务器和浏览器中进行。服务器将随着时间的推移而更新,最终支持这两种协议。支持新协议的浏览器将自动切换到HTTP/2。同时,旧的浏览器将无法理解它。作为开发人员,您需要知道您的浏览器和您正在使用的服务器是否都支持HTTP/2,以确保连接将升级到HTTP/2。

一些争议

虽然许多人对HTTP/2感到兴奋,但其他人,如Poul-Henning Kamp,却并不那么印象深刻。 Kamp认为HTTP/2“实际上只是HTTP/1.2的一个宏伟名称”,并认为如果它真的起飞,它很可能不会持续很长时间。

在他看来,新协议并没有解决实际问题,而是过于关注带宽。他建议,更好的关注点应该是取消cookie的概念,并用会话/身份工具来代替它。这将在一定程度上提高安全隐患日益增多的世界中的隐私性。而HTTP/2,Kamp认为,并没有显着提高隐私性。

查看差异

这个Akamai演示说明了两种协议版本中资源是如何并发加载的。第一张图片通过HTTP/1和六个并发连接(如果您使用的是Google Chrome)加载,而第二张图片通过HTTP/2作为一个整体加载,所有部分同时加载。

HTTP/2: the Pros, the Cons, and What You Need to Know

如果您想更深入地了解数据在协议连接中的加载方式有何不同,请查看这个golang.org示例。它允许您尝试不同的延迟设置,以便您可以看到数据如何在不同容量的设备上并发加载。延迟越长,HTTP/2在性能方面获胜就越明显。

HTTP/2: the Pros, the Cons, and What You Need to Know

底线

HTTP/2对普通用户来说将是一个平缓的过渡,而对于从事网络工作的人来说,则需要做出一些选择。

一般来说,网站将更安全,加载速度更快。该协议没有带来任何根本性的变化,这可能是因为这种变化在技术上和政治上都更难实现。这就是为什么HTTP/2可能不会为我们服务那么久的原因。

技术世界每年都在发展得更快,所以几年后我们可能需要其他的东西。我个人的希望是,下一个协议将更灵活,并且在应对不断变化的技术挑战方面更勇敢。

(FAQs)关于HTTP/2的常见问题解答 (此处省略FAQs部分,因为内容与前面已覆盖的内容高度重叠,避免重复。)

以上是http/2:优点,缺点和您需要知道的的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn