携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详情
HTTP/2
什么是 HTTP/2 协议
超文本传输协议(HTTP)是一套允许互联网用户交换网站信息的标准。自1991年推出以来,已经有四次HTTP迭代。
HTTP/2于2015年发布,是HTTP/1.1协议的主要修订版。它源自SPDY协议,作为通过加快页面加载速度和减少往返时间(RTT)来改善在线体验的一种方式,特别是在资源密集型网页上。
在这里,我们将讨论为什么需要新协议,它从SPDY演变而来,它与HTTP / 1.1有何不同,以及CDN如何帮助使您的网站内容HTTP / 2兼容。
从 SPDY 到 HTTP/2
HTTP/ 1.1是HTTP的第三个版本和标准协议超过15年。它引入了持久连接以提高性能,并为标准请求(如 GET、HEAD、PUT 和 POST)奠定了基础。
然而,随着网站变得更加资源密集,HTTP / 1.1的局限性开始显现出来。具体来说,它对每个 TCP 连接使用一个未完成的请求会产生大量开销,从而减慢了页面加载时间。
2010年,Google发布了SPDY协议,作为修改HTTP处理请求和响应方式的一种方式。它的重点是通过TCP流水线减少延迟,并提供强制压缩等功能。
虽然HTTP / 2最初是在SPDY之后建模的,但它很快就被修改为包含独特的功能,包括固定的标头压缩算法(与SPDY的基于动态流的压缩相反)。发布后,谷歌宣布将取消对SPDY的支持,转而支持HTTP/2。
HTTP/1.1 与 HTTP/2 协议
HTTP/2 在 HTTP/1.1 上进行了多方面的改进,从而加快了内容交付速度并改善了用户体验,包括:
- 二进制协议 – 与 HTTP/1.1 使用的文本协议相比,二进制协议消耗更少的带宽,更高效地解析,并且不易出错。此外,它们可以更好地处理空格、大写和行尾等元素。
- 多路复用 - HTTP / 2是多路复用的,即它可以通过单个TCP连接并行发起多个请求。因此,包含多个元素的网页通过一个 TCP 连接进行传递。这些功能解决了 HTTP/1.1 中的网头阻塞问题,即线路前面的数据包阻止其他数据包被传输。
- 标头压缩 – HTTP/2 使用标头压缩来减少 TCP 的慢启动机制引起的开销。
- 服务器推送 – HTTP/2 服务器将可能使用的资源推送到浏览器的缓存中,甚至在请求它们之前。这允许浏览器在没有额外请求周期的情况下显示内容。
- 提高安全性 – Web 浏览器仅通过加密连接支持 HTTP/2,从而提高用户和应用程序的安全性。
HTTP/2 实现和 CDN
谷歌决定停止支持SPDY协议,这使得升级到HTTP / 2对于希望减少RTT和加快页面加载时间的在线企业来说势在必行。
但是,由于多种原因,迁移到 HTTP/2 可能很复杂,包括:
- HTTPS 兼容性 – 传输层安全性 (TLS) 的新扩展意味着站点必须首先与 HTTPS 兼容才能使用 HTTP/2。
- 服务器升级 - 所有服务器都需要从HTTP / 1.1升级到HTTP / 2,这是一个可能繁琐且容易出错的过程。
- 错误修复 - HTTP / 2需要您的开发人员和设计人员提出新的解决方案来克服HTTP / 1.1错误,因为它们可能会在新标准中产生问题。