HTTP/2的前世今生

来源:互联网 发布:网络教育报考流程 编辑:程序博客网 时间:2024/05/21 10:17

HTTP/2前世】

 

HTTP/2的前生是Google开发的基于TCP的传输层协议—SPDY。SPDY是对HTTP协议的增强。用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。

SPDY并不用于取代HTTP/1.x,它只是修改了HTTP/1.x的请求与应答在网络上传输的方式;这意味着只需增加一个SPDY传输层,现有的所有服务端应用均不用做任何修改。当使用SPDY的方式传输,HTTP请求会被处理、标记简化和压缩(压缩报头和去掉不必要的头)。

目前互联网工程任务组IETF)对SPDY协议进行了标准化,于20155推出了类似于SPDY协议的 HTTP 2.0 协议标准(简称HTTP/2)。

谷歌因此宣布放弃对SPDY协议的支持,转而支持HTTP/2。谷歌称,计划于 2016 年初在 Chrome中移除 SPDY,并将为Chrome 40添加 HTTP/2 协议支持。

此外,著名的开源HTTP服务器软件 Nginx也于20159月移除了对SPDY的支持,转而支持HTTP/2

因此,建议新的网站不要部署SPDY,转为部署HTTP/2。旧有的SPDY部署也应尽快转移至HTTP/2,以符合浏览器对新HTTP标准的支持。

 

SPDY功能:

新协议的功能包括

1.    数据流的多路复用:SPDY允许在一个连接上无限制并发流。因为请求在一个通道上,TCP效率更高:更少的网络连接,发出更少更密集的数据包。

2.    请求优先级:客户端从服务器端请求它希望的项目数量,并为每个请求分配一个优先级。这可以防止在网络通道被非关键资源堵塞时,高优先级的请求被挂起。

3.    HTTP报头压缩SPDY压缩请求和响应HTTP报头,从而减少传输的数据包数量和字节数。

具体做法:

·            SPDY使用TCP作为传输层,在SSL层上增加一个SPDY会话层,以在一个TCP连接中实现并发流。

·            强制使用SSL,让SSL协议在现存的网络设施下有更好的安全性和兼容性。

效果:

使用SPDY在实验室测试中页面加载速度比原先快64%


HTTP/2今生】

HTTP/2超文本传输协议 2.0,在开放互联网上HTTP 2.0将只用于https://网址

HTTP/2 SPDY仍有不同的地方,主要是以下两点:

1.   HTTP/2支持明文 HTTP传输,而 SPDY强制使用 HTTPS

2.   HTTP/2消息头的压缩算法采用 HPACK ,而非 SPDY 采用的 DELEFT

 

 HTTP/2优势

现在的Web动辄就是几兆的图片而且对实时性也要求比较高。为了适应新的需求,HTTP/2加速HTTP以减少HTTP的负荷。另外,HTTP/2对于那些拥有复杂的Web站点的组织更有用,特别是当其用户分布在全球或者用户网络不好的情况,比如手机用户。

1.   HTTP/2采用二进制格式传输数据,而非 HTTP/1.x的文本格式。二进制格式在协议的解析和优化扩展上带来更多的优势和可能。(优化SPDY

2.   HTTP/2对消息头采用 HPACK进行压缩传输,能够节省消息头占用的网络的流量。而 HTTP/1.x每次请求,都会携带大量冗余头信息,浪费了很多带宽资源。(优化SPDY

3.   多路复用,所有的请求都是通过一个 TCP连接并发完成。HTTP/1.x虽然能利用一个连接完成多次请求,但是多个请求之间是有先后顺序的,后面发送的请求必须等待上一个请求返回才能发送响应。这会很容易导致后面的请求被阻塞,而 HTTP/2做到了真正的并发请求。同时,流还支持优先级和流量控制。(继承SPDY

4.   Server Push:服务端能够更快的把资源推送给客户端。例如服务端可以主动把 JS CSS 文件推送给客户端,而不需要客户端解析 HTML再发送这些请求。当客户端需要的时候,它已经在客户端了。(继承SPDY

下面的链接是对http/1.1和http/2的性能比较的实例,请参考:

https://http2.akamai.com/demo

0 0
原创粉丝点击