HTTP 2.0来了!

Posted 太一星晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP 2.0来了!相关的知识,希望对你有一定的参考价值。

翻翻衣橱,十几年前的衣服你还在穿吗?当年喜爱的大衣,如今已打满补丁,就算咱艰苦朴素仍然穿上,但毕竟时过境迁,它已不适合这个年代。


这就像曾经风光无限的HTTP1.1,它曾是构成整个网络的基础,但随着互联网的高速发展,也即将遭遇淘汰了。

HTTP1.1怎么了?


众所周知,HTTP1.1于 1999年投入使用,当时互联网内容相对简单,不像现在,网页里包含了许多不同的组件——-除了标准的 html,还有设计元素 CSS、客户端语言 javascript、图像视频、 Flash 动画……一句话,现在HTTP要传输的内容实在太多了。


为了传输这些信息,用户浏览器不得不创建多个连接,每个连接都包含头文件、目的和通讯包或通讯协议的详细信息此外,每次请求中HTTP的头域都带了多种冗余的字段和重复传输的字段这使得头域变得非常臃肿,增加了数据的传输量。

HTTP 2.0来了!


同时,页面上较大的图片等元素也会影响其他元素的传输。例如用户在传输大文件时,很容易感觉慢,对移动用户来说尤为明显。为了解决这个难点,人们一直在寻找方法以加快互联网的通讯效率。


于是,http2.0的概念就提上了日程。

HTTP2.0带来了什么?


建立一个更快的HTTP替代者,这个过程并不简单,并不是随意挑选一个协议将之标准化就可以的。


IETF国际互联网工程任务组参考了多个机构提出的草案,最终选择以Google的SPDY协议作为HTTP2.0的起点,前前后后经过17个版本的艰苦修订,终于形成最终方案。


啥意思?

就是说,1999年的衣服已经过时不穿了,人们马上就要换一件新衣服,而这件衣服将在未来一个时期里成为人们互联网传输的最主要的载体。。


HTTP2.0时代终于到来,它将如何改变我们的生活,为我们带来什么技术性的革新呢?


“小明”和“小强”,将从他们借文具的对话开始,为您讲述HTTP2.0的优势。


优势一:多路复用

HTTP 2.0来了!

普通HTTP会开多个连接发送多个请求,每个连接都要TCP的三次握手。但HTTP2.0只会在客户端和服务器第一次请求的时候建立一条连接,之后所有请求都在这条连接中传输,而且各个请求之间互不影响。


请求之间互不影响的机制很重要,是后续请求优先级的必要条件,而且对移动用户的体验尤为明显。


优势二:头压缩

HTTP 2.0来了!

如果普通HTTP必须把完整的头(比如“Accept-Encoding:gzip, deflate”)传输过去,那么对于HTTP2.0只需传输对应的编号(比如“16”)就行了。同时为了进一步缩减头的大小以及优化向cookie等这些比较长并且不确定的头,HTTP2.0采用了一种精心设计的哈弗曼编码来进行压缩,这样大大减少了头部的大小。

普通HTTP头中,用的是可读字符串作为头,比如“Accept-Encoding:gzip, deflate”。而在HTTP2.0中,采用了二进制的格式表示头域,也就是提前存储了一张表,并且这张表是可以动态变化的——HTTP头传输的内容更简练。

HTTP 2.0来了!


优势三:优先级请求

HTTP 2.0来了!

HTTP2.0中一条连接中的多个请求是互不影响的,每个请求中有一个优先级的字段,通常图片类的请求优先级会比较低。


这样的设计,是让服务器根据优先级优先传输高优先级的文本和html等数据,在用户看来就是页面整体已经加载了,只是个别图片延时显示,不会出现普通HTTP中因为图片加载慢,导致整个页面都不显示的情况,减少了用户的焦虑等待,提高了用户体验。


优势四:服务器推送

1.1的服务器推送机制
一个页面上可能会有几十上百个元素,1.1环境下的浏览器必须先请求主页把主页加载并解析完,才能发送后续那几十上百个主页中的元素的请求。如果浏览器加载并解析主页的过程中没有请求发送,相当于浪费了这段时间。


2.0的服务器推送机制
在2.0的环境下,浏览器会在客户端发送主页请求的时候,直接把一部分会用到的元素在浏览器解析主页的过程中提前推送给浏览器,当浏览器解析完主页,发现需要的元素已经推送过来了,就可以不再发送请求,直接进行下一步的元素解析,从而减少了整体页面加载的时间——这就是HTTP2.0加入的特性。


说了那么多,总而言之,HTTP2.0的核心特性就是——快!


无论是传统的桌面用户还是移动终端用户,都能通过HTTP2.0这件新衣服,得到前所未有的快速访问体验。


以上是关于HTTP 2.0来了!的主要内容,如果未能解决你的问题,请参考以下文章

HTTP 1.0 / HTTP 2.0 / HTTPS

http/2.0与http/1.1的区别

HTTP 2.0与OkHttp

【12-19】HTTP 2.0 和 HTTP1.1 区别

HTTP1.0 1.1 2.0 3.0梳理

(chap9 基于HTTP的功能追加协议) 期盼已久的http 2.0