HTTP 2.0

时间 : 14-09-14 评论 : 0 点击 : 954 次

HTTP/2(HTTP 2.0)是下一代HTTP协议,基于Google SPDY协议。

背景

HTTP协议第一个版本设计的时间距离现在已经20多年了。当前使用的HTTP版本是HTTP 1.1,发布时间是1999年,关注点是实施简单性和可访问性的优化,对性能没有太大提升。HTTP被广泛使用,基于HTTP的应用越来越复杂。

目标

提高传输速度
1. 多路复用请求 一个复杂的页面通常包含数十个HTTP请求,HTTP 1.1提高加载速度的方式: 一、通过启用多个进程并发技术来提高加载速度,出于对服务器负载的考虑,对单个域名的并发请求数量有限制。 二、复用TCP连接,一个请求结束后,不关闭连接,下一个请求继续使用该TCP连接与服务器通信 三、管道化连接,建立连接后,把连接当成一个管道,往管道里扔请求,而不等服务器响应。由于复杂性过高,管道化连接在HTTP协议里没有得到普及。 HTTP 2.0的多路复用技术类似于管道化连接,建立连接之后,可以并发发送无限个请求。对同一个域名,客户端只需要与服务器建立一个连接处理页面上的所有请求。

  1. 请求分优先级 HTTP 1.1会按FIFO的顺序处理多个请求,FIFO存在Head-of-line blocking(线头阻塞)的问题,即队列头部的请求阻塞使队列后面所有请求阻塞。 请求分优先级允许选择性的优先传输css这样重要的资源,再传输网站图标等次要的资源。

  2. 支持服务器推送技术 即允许服务器响应的数量大于客户端请求的数量。服务器可以分析客户端需要什么数据,不等客户端请求,就主动推送给客户端,提升速度。

  3. HTTP头部压缩 对同一个域名,HTTP 1.1每次请求都会发送User-Agent、Host等头部信息,多路复用可以避免重复发送这些冗余信息。

提高安全性
HTTP 2.0强制使用SSL协议,HTTP 2.0只运行在https://上,不运行在http://上

兼容HTTP1.1
保持与HTTP 1.1语义的向后兼容性也是该版本的一个关键目标

浏览器支持

Google Chrome/Chromium、Firefox 11、Opera 12.10、Internet Explorer 11、Amazon's Silk、Safari 8

服务器支持

Apache 2.2以上可以通过添加模块mod_spdy来支持SPDY,添加mod_spdy不会影响HTTP 1.1的正常运行,需要开启mod_ssl模块,只支持HTTPS。

http

HTTP 2.0:等您坐沙发呢!

发表评论