HTTP / 2协议

HTTP / 2协议如何工作的详细说明

我建议阅读HTTP教程第一的

HTTP / 2是HTTP协议的当前版本。由IETF(互联网工程任务组)委员会于2015年发布,由于其独特的功能,现在已被广泛采用。

HTTP / 2比HTTP / 1.1(当时可用的最新HTTP版本)性能更高。

HTTP / 2提供的减速功能非常吸引人,因此很快就被采用-通过对Web服务器进行简单的更改(因为HTTP / 2与HTTP / 1.1向下兼容100%),您的网站和Web应用现在可以正常工作自动更快,这反过来对您的用户和SEO都有利(因为速度是排名的关键因素)。

HTTP / 2如何比HTTP / 1.1快得多?原因很多,所有的原因都是为了减少先前版本的效率低下,并引入可使浏览器更快地提供资源的功能。

该协议新版本的主要功能是:

  • 请求和响应多路复用
  • 有效压缩HTTP标头
  • 服务器推送
  • 二进制通讯

多路复用

在HTTP / 2之前,每个TCP连接一次只能提供一个响应。

TCP是在其上构建HTTP的基础协议。 TCP停留在传输层,而HTTP停留在应用程序级别。

在单个TCP连接之上启用HTTP / 2的请求/响应多路复用,允许服务器使用相同的连接来服务多个请求,从而实现更快的通信。

这是单个更改,它将对您的应用程序带来巨大好处,并使一些优化技术过时,包括图像精灵(用于将多个图像合并到一个图像中,然后使用特殊的CSS技术对其进行“多路分解”) )和域分片,这是另一种用于防止浏览器限制到同一域的同时连接数量的黑客。

标头压缩

考虑到Cookie和其他标头值的正常使用,页面和资源上的HTTP标头可能会变得很大。压缩使HTTP的占用空间更小,从而减少了客户端和服务器之间交换的数据量。

服务器推送

服务器推送是一项功能,它允许向单个请求发送多个响应。由于服务器知道请求资源时,客户端将随后请求其他补充资源(例如CSS,JS,链接到页面的图像),因此服务器可以决定立即发送它们。

服务器无需发送HTML,而是等待浏览器对其进行解析并触发其他请求以获取资产,而是可以将其完全推送。

服务器还可以决定发送将来请求中可能需要的资源,预先优化下一个页面加载并将其放入客户端缓存。

请注意,服务器推送也可能有其自身的缺点-例如,您可能会冒着不必要的风险将过多的数据发送到客户端(可能已缓存在客户端上),因此请谨慎使用

二进制通讯

HTTP / 1.1使用基于文本的通信。 HTTP / 2使用二进制通信,它具有一些优点,包括解析效率更高,更不易出错且更紧凑。

未来会有什么发展?

HTTP/3正在开发中,并将根据HTTP-QUIC,一个实验项目。

QUIC是在传输层基于UDP(而不是TCP)的协议,这意味着与HTTP / 2和HTTP / 1.x相比,HTTP / 3将基于完全不同的技术堆栈。


更多网络教程: