什么是http/2?它如何影响互联网的未来?

由于HTTP/2的到来,互联网将变得更加高效。但它是什么?它是如何改进HTTP的?...

您可能还没有听说过HTTP/2,但它是对HTTP的最新更新。新的协议标准引入了一些新的概念,使得服务器和应用程序之间的通信更快、更高效。

what-http2

什么是http/2协议(http/2)?

超文本传输协议版本2,或HTTP/2,是15年来对HTTP的第一次重大更新。

以前的协议标准HTTP/1.1从1997年开始使用,它混合使用了一些笨拙的解决方法来改进HTTP的局限性。

它基于SPDY(“speedy”),这是一个由Google发起的开源实验,旨在解决HTTP/1.1的一些问题和限制

Internet工程工作组(IETF)在超文本传输协议版本2草案17中指定了类似的更改:

"HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection [...]

"It also allows prioritization of requests, letting more important requests complete more quickly, further improving performance."

"HTTP/2 also enables more efficient processing of messages through use of binary message framing."

"This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax. HTTP's existing semantics remain unchanged."

http/2是基于spdy的

HTTP/2 is based on SPDY

到2012年,大多数现代浏览器和许多流行网站(Google、Twitter、Facebook等)已经支持SPDY。随着SPDY的普及,HTTP工作组(HTTP-WG)开始着手更新HTTP标准。

从这一点开始,SPDY成为HTTP/2中新特性的基础和实验分支。当时,我们研究了SPDY如何改进浏览。此后,起草、批准并发布了第2版标准。

SPDY的许多特性都被整合到了HTTP/2中,Google最终在2016年初停止了对该协议的支持。

大多数浏览器最终停止支持SPDY,由于没有其他选择,HTTP/2正在成为事实上的标准。

虽然HTTP/2协议标准与HTTP/1并不完全向后兼容,但兼容性可以通过翻译来实现。只有HTTP/1.1的客户机不会理解只有HTTP/2的服务器,反之亦然,这就是为什么新的协议版本是HTTP/2而不是HTTP/1.2。

也就是说,HTTP-WG提供的工作的一个重要部分是确保HTTP/1和HTTP/2可以来回翻译,而不会丢失任何信息。

引入的任**机制或功能也将与版本无关,并与现有web向后兼容。

HTTP/2并不是一个真正的用户可以实现的东西,但是我们可以做一些事情来影响我们的浏览速度。你相信这些神话中的任何一个能加快你的上网速度吗?

http/2的优点和特性

HTTP/2对HTTP标准进行了一些重大更新。其中一些更重要的是二进制帧、多路复用、流优先级、流控制和服务器推送。

二进制帧

HTTP message in HTTP/2 binary framing streams

在更新HTTP2/之后,HTTP协议通信被拆分为二进制编码帧的交换。这些帧映射到属于特定流的消息。然后在单个TCP连接中多路复用流(在某种意义上编织在一起)。

新的二进制帧层引入了一些新的术语:流、消息和帧。

  • 流是承载一条或多条消息的双向字节流。
  • 这些流中的每一个都有一个唯一的标识符,并且可以使用可选的优先级信息来传送双向消息。
  • 帧是HTTP/2中包含特定数据集(HTTP头、消息有效负载等)的最小通信单元。标头将至少标识帧所属的流。
  • 消息是映射到逻辑请求或响应消息的完整帧集。
  • 每个消息都是一个逻辑HTTP消息,如请求或响应,由一个或多个帧组成。

这允许我们使用一个TCP连接,因为过去需要多个TCP连接。

多路复用

Multiplexing example

HTTP/1.1确保每个连接一次只能传递一个响应。如果客户端想要发出多个并行请求,浏览器将打开额外的TCP连接。

HTTP/2消除了HTTP/1.1的这一限制,并支持完全请求和响应多路复用。这意味着客户机和服务器可以将HTTP消息分解为独立的帧,然后将这些帧交织在一起,并在另一端重新组装。

总的来说,这是HTTP/2最重要的增强,因为它将在一定程度上消除对多个连接的需要。这将反过来为所有web技术带来许多性能优势。

连接数量的减少意味着传输层安全性(TLS)握手更少,会话重用更好,客户端和服务器资源需求总体减少。这使得应用程序部署更快、更简单和更便宜。

拥有许多外部资产(图像或脚本)的网站将看到HTTP/2多路复用带来的最大性能收益。

流优先级和相关性

利用权重和流依赖性对复用流进行了进一步的改进。HTTP/2允许我们为每个流赋予一个权重(一个介于1和256之间的值),并使它显式地依赖于另一个流。

这种依赖关系和权重的组合导致了优先级树的创建,它告诉服务器客户端希望如何接收响应。

服务器将使用优先级树中的信息来控制CPU、内存和其他资源的分配以及带宽分配,以确保客户端接收到高优先级响应的最佳传递。

流量控制

HTTP/2中的流控制问题类似于HTTP/1.1。然而,由于HTTP/2流在单个TCP连接中被多路复用,因此HTTP/1.1中的流控制方式不再有效。

简言之,需要流量控制来阻止水流相互干扰造成堵塞。这使得多路复用成为可能。HTTP/2允许使用各种流控制算法,而不需要更改协议。

HTTP/2中没有指定流控制的算法。相反,提供了一组构建块来帮助客户机和服务器应用它们自己的流控制。

您可以在HTTP/2internetdraft的“流控制”部分找到这些构建块的细节。

服务器推送

当您第一次访问页面时,浏览器通常会从服务器请求并接收HTML文档。然后,服务器需要等待浏览器解析HTML文档并发送对嵌入资产(CSS、JavaScript、图像等)的请求。

在HTTP/1.1中,在浏览器请求之前,服务器无法发送这些资产,并且每个资产都需要一个单独的请求(即多次握手和连接)。

服务器推送(serverpush)允许服务器在没有提示的情况下发送这些资源,这将减少延迟,因为它已经知道客户端将需要这些资源。因此,在上面的例子中,服务器会将CSS、JavaScript(网页中常见的脚本语言)和图像推送到浏览器,以便更快地显示页面。

基本上,服务器推送允许服务器为单个客户机请求发送多个响应。

尽管是手动操作,但这是我们目前通过将CSS或JS内联到HTML文档中得到的效果——我们将内联资源推送到客户端,而不必等待客户端请求它。

这与当前严格的一对一请求-响应工作流的HTTP标准有很大的区别。

http/2的局限性

Image of browsers that support HTTP/2

SPDY在安全性方面有一个稍微严格的策略,并且要求对所有连接进行SSL加密。HTTPS/2不需要加密,但许多服务都不提供HTTP/2,而不需要SSL。

所有主流浏览器都支持HTTP/2,但是没有一个浏览器在没有加密的情况下支持它。CanIUs网站对当前浏览器对HTTP/2的支持有一个很好的表概述,如上图所示。

HTTP/1.1和HTTP/2之间的向后兼容性和转换将降低页面加载速度。

现在没有真正的理由说明加密不应该是默认设置或强制设置。如果您的站点上已经有SSL证书,则可以通过启用HSTS来提高HTTPS网站的安全性。

http/2是下一个大问题吗?

Comparison of HTTP/1.1 and HTTP/2 loading time

HTTP/2在2015年年中被提议作为一个标准,大多数浏览器在那一年年底增加了对它的支持。HTTP/2已经影响了internet的工作方式以及应用程序和服务器的通信方式。

没有强制使用HTTP/2的要求,但到目前为止,它只提供好处,没有缺点。从用户的角度来看,这也是一个相当小的变化,人们不会真正注意到。

根据W3Tech的数据,目前排名前1000万的网站中有31.7%支持HTTP/2。对于大多数人来说,在网站上启用HTTP/2的最快方法是使用Cloudflare的CDN。

下一个提出的标准(HTTP/3)已经在工作中,并且是基于QUIC的,QUIC是Google的另一个实验项目。今年10月,IETF的HTTP-WG和QUIC工作组正式要求QUIC成为新的全球标准,并将其更名为HTTP/3。

如果你好奇,Akamai.com有一个快速工具来检查浏览器是否支持HTTP/2。如果没有,也许考虑切换浏览器。

  • 发表于 2021-03-22 10:55
  • 阅读 ( 138 )
  • 分类:IT

你可能感兴趣的文章

7种让你的网站或博客更快地为访问者加载的方法

...况不太可能下降。所以,保持一个小的网站足迹,让移动互联网用户高兴,并确保他们坚持左右! ...

  • 发布于 2021-03-22 14:24
  • 阅读 ( 232 )

关于https和ssl证书的7个误区您不应该相信

...,问题仍然会发生。一旦你的车停了,你就不知道前方有什么。 ...

  • 发布于 2021-03-24 13:33
  • 阅读 ( 217 )

站点需要ssl证书的7个原因

...估HTTPS地址的威力,也不应该低估整个加密的威力。它是互联网的重要组成部分。如果您还没有SSL证书,那么确实是时候获得SSL证书了。 ...

  • 发布于 2021-03-24 18:39
  • 阅读 ( 197 )

到2025年,互联网将扼杀5个行业(以及它对你的影响)

...展。许多不同行业的最新颠覆性技术之所以存在,是因为互联网使之成为可能。 ...

  • 发布于 2021-03-24 22:31
  • 阅读 ( 209 )

通过以下11个基本视频了解网络安全

... 作为一家互联网安全咨询公司的首席执行官,特雷莎•佩顿为乔治•W•布什(georgew.Bush)监管白宫IT部门。在这段视频中,她提供了一些技巧,以保持领先的网络犯罪,从而使她的...

  • 发布于 2021-03-25 05:00
  • 阅读 ( 185 )

http/3和quic将如何加速您的web浏览

...HTTPS将安全性固定到协议上。 QUIC最初的意思是“快速UDP互联网连接”。这个协议被设计成比TCP更快,延迟更低。QUIC在建立连接时提供更少的开销,并通过连接更快地传输数据。与TCP不同的是,像一段数据在传输过程中丢失这样...

  • 发布于 2021-04-03 03:15
  • 阅读 ( 184 )

谷歌chrome为什么说网站“不安全”?

...网站上输入诸如密码或支付信息之类的私人信息,当它在互联网上传播时,有人可能会窥探到它。 人们还可以观看网站发送给你的数据。所以,即使你只是浏览网页,窃听者也能准确地看到你在看哪些网页。你的互联网服务提...

  • 发布于 2021-04-05 05:02
  • 阅读 ( 191 )

什么是https,我为什么要在意?

...据以明文形式通过连接发送。Wi-Fi网络上的窃听者、您的互联网服务提供商或****局等**情报机构可以看到您访问的网页以及您来回传输的数据。 相关:什么是加密,它是如何工作的? 这有很大的问题。首先,无法验证您是否连...

  • 发布于 2021-04-08 04:21
  • 阅读 ( 149 )

你使用ipv6了吗?你应该在乎吗?

IPv6对于互联网的长期健康至关重要。但您的互联网服务提供商是否提供了IPv6连接?你的家庭网络支持吗?你是否应该关心你是否正在使用IPv6? 从IPv4到IPv6的转换将使互联网拥有更大的IP地址池。它还应该允许每个设备都有自己...

  • 发布于 2021-04-09 03:59
  • 阅读 ( 155 )

新钱解释了支付是如何成为一种社交媒体的

...实是一种通讯技术。 我们想一想,70年代,用来建立早期互联网的电脑是如何被用来建立Visa/Mastercard网络的;我是一个年长的千禧一代,但即使是我也记得有一次我在购物,他们无法处理我的卡(我猜是我妈妈的卡),因为有人...

  • 发布于 2021-04-18 06:25
  • 阅读 ( 144 )
jmub5668
jmub5668

0 篇文章

相关推荐