http 2.0简介
http 2.0即超文本传输协议 2.0,是下一代http协议。是由互联网工程任务组(ietf)的hypertext transfer protocol bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。http 2.0在2013年8月进行首次合作共事性测试。在开放互联网上http 2.0将只用于https://网址,而 http://网址将继续使用http/1,目的是在开放互联网上增加使用加密技术,以提供强有力的保护去遏制主动攻击。dane rfc6698允许域名管理员不通过第三方ca自行发行证书。
ietf会让所有互联网通路默认选择的方式来引入加密,互联网专家们将新一代加密协议称为“http 2.0”。
协议目标:
异步连接多路复用;
头部压缩;
请求/响应管线化;
保持与http 1.1语义的向后兼容性也是该版本的一个关键目标。spdy是一种http兼容协议,由google发起,chrome、opera、firefox以及amazon silk等浏览器均已提供支持。http实现的瓶颈之一是其并发要依赖于多重连接。http管线化技术可以缓解这个问题,但也只能做到部分多路复用。此外,已经证实,由于存在中间干扰,浏览器无法采用管线化技术。spdy在单个连接之上增加了一个帧层,用以多路复用多个并发流。帧层针对http类的请求响应流进行了优化,因此运行在http之上的应用,对应用开发者而言只要很小的修改甚至无需修改就可以运行在spdy之上。spdy对当前的http协议有4个改进:
多路复用请求;
对请求划分优先级;
压缩http头;
服务器推送流(即server push技术);
spdy试图保留http的现有语义,所以cookies、etags等特性都是可用的。[3]
如何在 apache 中启用 http/2
刚发布的 apache httpd 2.4.17 终于支持 http/2 了。这个页面给出了一些如何构建/部署/配置的建议。目的是为了大家发现 bugs 时能升级它,或者给一些能更好工作的建议。
最后,这会归并回到官方 apache 文档,这里只会留下一个到那里的链接。暂时我们还没做到。
编译支持 http/2
在你编译版本之前,你要进行一些配置。这里有成千上万的选项。和 http/2 相关的是:
启用在 apache 服务器内部实现该协议的 ‘http2 模块。