首页 > 编程知识 正文

关于http,web2.0网站是什么意思

时间:2023-05-03 11:33:12 阅读:136638 作者:2438

首先HTTP2.0大幅提高了web性能,在HTTP1.1完全语义兼容的基础上,进一步减少了网络延迟。 实现低延迟、高吞吐量。 对于前端开发人员来说,优化工作减少了。 为了介绍HTTP2.0,本文重点介绍了新功能的作用、工作过程和如何更好地完成优化工作,包括

二进制帧头压缩复用请求优先级服务器推送1 .介绍HTTP/2是HTTP协议自1999年HTTP1.1发行以来的第一个更新,主要基于SPDY协议。

1.1SPDY协议SPDY是Speedy的实音,意为“更快”。 是谷歌开发的基于TCP协议的APP应用层协议。 目标是优化HTTP协议的性能,通过压缩、复用、优先级等技术,缩短网页的加载时间,提高安全性。 SPDY协议的中心思想是尽量减少TCP连接数。 SPDY不是取代HTTP的协议,而是HTTP协议的增强。

1.2 HTTP1.X的缺点所有东西的更新都是为了弥补以前版本的几个问题而进行的。 现在,我们来看看HTTP1.x有什么缺点,它会导致使用HTTP2.0。

HTTP1.x有以下主要缺点:

在HTTP/1.0中,一次只能向一个TCP连接发出一个请求。 此外,HTTP/1.1使用的管道技术也只能部分并行处理请求,并且仍然存在队列头拥塞问题,因此当客户端需要发出多个请求时,通常会建立多个连接以减少延迟。 单向请求只能由客户端发起。 请求和响应消息的报头信息冗馀较大。 由于数据未压缩,数据传输量会变大。 让我们通过链接比较一下HTTP2.0比HTTP1.x快多少。 链接到

2 .二进制帧不改变HTTP1.x的语义、方法、状态码、URL及报头字段,HTTP2.0是如何突破HTTP1.1的性能限制,改善传输性能,实现低延迟高吞吐量的呢? 重要的是在APP应用层(HTTP )和传输层(TCP )之间添加二进制帧层。

在组织二进制帧及其作用时,首先让我们稍微掌握一下关于帧的知识:

帧: HTTP2.0通信的最小单位。 所有帧共享8字节的标题,包括帧的长度、类型、标记和预约位,至少有识别当前帧所属流的标识符。 该帧承载特定类型的数据,如HTTP报头、负载等。 消息:大于帧的通信单位是指请求、响应等逻辑HTTP消息。 由一个或多个框架组成流。 大于消息的通信单位。 是承载双向消息的TCP连接中的虚拟通道。 每个流都有唯一的整数标识符。 在HTTP2.0中,所有提高性能的核心都是二进制传输,而在HTTP1.x中则是以文本形式传输数据。 基于文本的数据传输存在许多缺点,由于文本的表示形式具有多样性,需要鲁棒考虑的场合必然很多,但由于二进制只有0和1的组合,选择二进制传输,方便而鲁棒。

HTTP2.0引入了新的编码机制,对所有传输的数据进行分割,并以二进制格式编码。

要避免HTTP受到影响,必须在APP应用层(HTTP2.0 )和传输层(TCP or UDP )之间添加二进制帧图层。 在二进制帧层中,HTTP2.0将所有传输的信息拆分为较小的消息和帧,并以二进制格式进行编码。 HTTP1.x的标头信息封装在头帧中,请求主体封装在数据帧中。

由于HTTP1.1报头压缩不支持HTTP报头压缩,因此出现了SPDY和HTTP2.0。 SDY使用DEFLATE算法,而HTTP2.0使用专门为标头压缩设计的HPACK算法。

HTTP在每个通信(要求或者应答)中携带报头信息记述资源属性。

在HTTP1.0中,以文本形式传输header,在header上携带cookie的话,每次需要重复传输数百到数千字节,这真是一个很大的开销。

在HTTP2.0中,使用hpack(http2标头压缩算法)压缩格式对传输的头进行编码,减小了头的大小。 另外,为了记录出现的header,在两端保持了索引表,之后在传输中,就可以传输已经被记录的header的键名,一旦对方接收了数据,就可以从键名中找到对应的值。

在HTTP1.x中,由于浏览器限制了使用同一域名的请求数量,因此经常使用精灵地图或使用多个域名。 如果页面需要大量资源,队列头块要求资源在达到最大请求时继续发送,直到其他资源请求完成。

在HTTP2.0中,基于二进制帧层,HTTP2.0能够在共享TCP连接的同时发送请求和响应。 在不破坏消息本身的含义的情况下,将HTTP消息分解为独立帧、交替发出,并在另一端基于流标识符和报头组装。 该技术避免了HTTP旧版本的报头阻塞问题,从而可以大幅提高传输性能。

5 .将请求优先级HTTP消息划分为许多独立的帧后,可以通过优化这些帧的交织和传输顺序来进一步优化性能。

6 .服务器推送HTTP2.0的新的强大新功能是服务器可以向一个客户端请求发送多个响应。 服务器向客户端推送资源不需要客户端的显式请求。

服务器端根据客户端的请求,提前返回多个响应,并将额外的资源推送到客户端。 客户端请求流,如下图所示

1(/page.html)。服务端在返回stream 1的消息的同时推送了stream 2(/script.js)和stream 4(/style.css)

服务端推送是一种在客户端请求之前发送数据的机制。在HTTP2.0中,服务器可以对一个客户端的请求发送多个响应。如果一个请求是由你的主页发送的,服务器可能会响应主页内容、logo以及样式表,因为他知道客户端会用到这些东西。这样不但减轻了数据传送冗余步骤,也加快了页面响应的速度,提高了用户体验。

推送的缺点:所有推送的资源都必须遵守同源策略。换句话说,服务器不能随便将第三方资源推送给客户端,而必须是经过双方的确认才行。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。