HTTP 2.0

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

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的多路复用技术类似于管道化连接,建立连接之后,可以并发发送无限个请求。对同一个域名,客户端只需要与服务器建立一个连接处理页面上的所有请求。

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

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

4. 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:等您坐沙发呢!

发表评论