美文网首页
HTTP2.0发展

HTTP2.0发展

作者: Simple_Learn | 来源:发表于2019-07-11 18:06 被阅读0次

首先我们需要了解HTTP是啥米东东?

HTTP协议
HTTP,文本传输协议,它是在应用层(第七层)上的协议,与它对接的传输层(第四层)的协议是TCP。
HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。

  1. 到现在为止,HTTP协议已经有三个版本了:
    HTTP1.0
    HTTP1.1
    HTTP/2
  2. 它们之间的主要区别:

HTTP1.0与HTTP 1.1的主要区别

  • 长连接
  • 节约带宽
  • HOST域

HTTP1.1与HTTP 2.0的主要区别

  • 多路复用
  • 二进制分帧
  • 首部压缩
  • 服务器推送

3.详细解释

HTTP1.0与HTTP 1.1的主要区别

长连接

HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,因为HTTP/1.0中默认使用Connection: close。,而HTTP1.1默认支持长连接。HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用一个长连接来发多个请求。

节约带宽

HTTP 1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401。客户端如果接收到100,才开始把请求body发送到服务器。这样当服务器返回401的时候,客户端就可以不用发送请求body了,节约了带宽。另外HTTP还支持传送内容的一部分。这样当客户端已经有一部分的资源后,只需要跟服务器请求另外的部分资源即可。这是支持文件断点续传的基础。

HOST域

现在可以用web server(例如tomat),设置虚拟站点是非常常见的,也即是说,web server上的多个虚拟站点可以共享同一个ip和端口。
HTTP1.0是没有host域的,HTTP1.1才支持这个参数。

HTTP1.1与HTTP 2.0的主要区别

HTTP 2.0的出现,相比于HTTP 1.x,大幅度的提升了web性能。在与HTTP/1.1完全语义兼容的基础上,进一步减少了网络延迟。而对于前端开发人员来说,无疑减少了在前端方面的优化工作。
下面基于HTTP 2.0协议的几个基本技术点来说明HTTP1.1与HTTP2.0的区别

多路复用 (Multiplexing)

多路复用
允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。众所周知,在HTTP/1.1协议中,浏览器客户端在同一时间针对同一域名的请求有一定数据限制。超过限制数目的请求会被阻塞。HTTP2.0使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比HTTP1.1大了好几个数量级。当然HTTP1.1也可以多建立几个TCP连接,来支持处理更多并发的请求,但是创建TCP连接本身也是有开销的。TCP连接有一个预热和保护的过程,先检查数据是否传送成功,一旦成功过,则慢慢加大传输速度。因此对应瞬时并发的连接,服务器的响应就会变慢。所以最好能使用一个建立好的连接,并且这个连接可以支持瞬时并发的请求。在过去,HTTP性能优化的关键并不在于高带宽,而是低延迟。单连接多资源的方式,减少服务端的链接压力,内存占用更少,连接吞吐量更大。
由于 TCP 连接的减少而使网络拥塞状况得以改善,同时慢启动时间的减少,使拥塞和丢包恢复速度更快

二进制分帧

在不改动HTTP/1.x的语义、语法、状态吗、URI以及首部字段……的情况下,HTTP/2是如何作做到“突破HTTP1.1的性能限制,改进传输性能,实现低延迟和高吞吐量”的?
关键之一就是在应用层(HTTP/2)和传输层(TCP or UDP)之间增加一个二进制分帧层。

首部压缩

HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。

服务器推送

服务端推送是一种在客户端请求之前发送数据的机制。在HTTP/2中,服务器可以对客户端的一个请求发送多个响应。Server Push 让HTTP1.x时代使用内嵌资源的优化手段变得没有意义;意思是说,当我们对支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,免得客户端再次创建连接发送请求到服务器端获取。这种方式非常合适加载静态资源。服务器推送可以缓存,并且在遵循同源的情况下,不同页面之间可以共享缓存。因此当客户端需要的数据已缓存时,客户端直接从本地加载这些资源就可以了,不用走网络,速度自然是快很多的。

【参考资料】
1.HTTP 2.0 和 HTTP 1.1 相比有哪些优势呢?
2.HTTP/2.0 相比1.0有哪些重大改进?

相关文章

  • HTTP2.0

    HTTP2.0 标签(空格分隔): HTTP2.0 HTTP2.0 核心变化:二进制分帧 在应用层(HTTP2.0...

  • 深入理解http2.0协议,看这篇就够了

    http2.0协议简介 什么是http2.0协议? 在http2.0官网 的描述是: 中文总结一下就是: 对1.x...

  • HTTP2.0发展

    首先我们需要了解HTTP是啥米东东? HTTP协议HTTP,文本传输协议,它是在应用层(第七层)上的协议,与它对接...

  • HTTP2.0的特性和性能优势

    HTTP的发展、演变、版本对比 :HTTP1.1默认开启keep-alive和管线化存储。 HTTP2.0的特性、...

  • Android 开发中的日常积累

    Android 开发中的日常积累 HTTP2.0 测试是否支持http2.0,需翻墙 httpvshttps ch...

  • RESTful风格的微服务-HTTP client

    随着spring boot快速发展和HTTP2.0的支持力度增加,现在restful标准的微服务接口越来越多,选择...

  • 14-02:HTTP2.0 的特性

    http2.0 的特性如下: 1、内容安全,应为 http2.0 是基于 https 的,天然具有安全特性,通过 ...

  • Http Https SPDY

    HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事 HTTP2.0的奇妙日常 淘宝全站HTTPS实践...

  • nginx配置Http2.0

    最近关注http2.0,然后想在在网站配置http2.0如下是配置和遇到的问题 使用server是基于nginx得...

  • 10:Python爬虫|猿人学第十七题|天杀的http2.0

    前言:我们来了解一下http2.0,http2.0是为了加快网页渲染速度所发布的新的协议,我们之前使用的reque...

网友评论

      本文标题:HTTP2.0发展

      本文链接:https://www.haomeiwen.com/subject/dbadkctx.html