转自个人博客 chinazt.cc

以下摘自http2的介绍:

HTTP/2 源自 SPDY/2

SPDY 系列协议由谷歌开发,于 2009 年公开。它的设计目标是降低 50% 的页面加载时间。当下很多著名的互联网公司,例如百度、淘宝、UPYUN 都在自己的网站或 APP 中采用了 SPDY 系列协议(当前最新版本是 SPDY/3.1),因为它对性能的提升是显而易见的。主流的浏览器(谷歌、火狐、Opera)也都早已经支持 SPDY,它已经成为了工业标准,HTTP Working-Group 最终决定以 SPDY/2 为基础,开发 HTTP/2。
但是,HTTP/2 跟 SPDY 仍有不同的地方,主要是以下两点:
HTTP/2 支持明文 HTTP 传输,而 SPDY 强制使用 HTTPS
HTTP/2 消息头的压缩算法采用 HPACK,而非 SPDY 采用的 DEFLATE
HTTP/2 的优势 相比 HTTP/1.x,HTTP/2 在底层传输做了很大的改动和优化:
HTTP/2 采用二进制格式传输数据,而非 HTTP/1.x 的文本格式。二进制格式在协议的解析和优化扩展上带来更多的优势和可能。
HTTP/2 对消息头采用 HPACK 进行压缩传输,能够节省消息头占用的网络的流量。而 HTTP/1.x
每次请求,都会携带大量冗余头信息,浪费了很多带宽资源。头压缩能够很好的解决该问题。 多路复用,直白的说就是所有的请求都是通过一个 TCP 连接并发完成。HTTP/1.x 虽然通过 pipeline 也能并发请求,但是多个请求之间的响应会被阻塞的,所以 pipeline 至今也没有被普及应用,而 HTTP/2 做到了真正的并发请求。同时,流还支持优先级和流量控制。
Server Push:服务端能够更快的把资源推送给客户端。例如服务端可以主动把 JS 和 CSS 文件推送给客户端,而不需要客户端解析 HTML 再发送这些请求。当客户端需要的时候,它已经在客户端了。 HTTP/2 主要是 HTTP/1.x 在底层传输机制上的完全重构,HTTP/2 是基本兼容 HTTP/1.x 的语义的(详细兼容性说明请戳这里)。Content-Type 仍然是 Content-Type,只不过它不再是文本传输了。

Openresty/Nginx默认是不支持http2的,需要将http2模块编译进应用中。下面我们以Openresty为例,介绍编译步骤.

  • 下载openssl-1.0.2l
wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
tar -zxvf openssl-1.0.2l.tar.gz
  • 生成编译信息
./configure --with-http_v2_module --with-openssl=/openssl-1.0.2l
  • 执行编译
make
make install

如果不报错,则编译成功。 下面来修改nginx配置文件,重点就是在启用443 ssl的地方启用http2. 如下:

server {
listen 443 ssl http2;
..........
}

执行reload,打开网页验证是否成功。

如果感觉编译麻烦,可以使用我已经编译好的openresty:

vikings/openresty:http2

最新文章

  1. 编写自己的PHP MVC框架笔记
  2. hadoop 2.7.2 + zookeeper 高可用集群部署
  3. MS SQL Server存储过程
  4. enhance convenience rather than contribute to the fundamental power of the language
  5. linux下centos安装android sdk最新全面教程【可行】
  6. kettle Java Filter(表达式过滤)
  7. IIS Web服务扩展中添加ASP.NET4.0
  8. 华为OJ:查找字符的第一个字符串只出现一次
  9. POJ 3468<线段树,区间add>
  10. Hadoop:Hadoop基本命令
  11. 一分钟了解Allegro导入DXF文件
  12. Trie for string LeetCode
  13. 段的性能统计信息v$segment_statistics
  14. Linux—日志查看(测试人员)
  15. Kafka技术内幕 读书笔记之(五) 协调者——延迟的加入组操作
  16. Marriage Match IV(最短路+网络流)
  17. [中英对照]Linux kernel coding style | Linux内核编码风格
  18. 同一页面中引入多个JS库产生的冲突解决方案(转)
  19. 阿里云服务器ECS按ctrl+alt+delete无法登录
  20. 由上一个血案引发的关于property和attribute关系的思考

热门文章

  1. Oracle学习——扫盲篇
  2. Angular 学习笔记——sublime
  3. python——定时闹钟讲解
  4. 重启nginx后丢失nginx.pid的解决方法(转)
  5. 奥巴马(Obama)获胜演讲全文[中英对照]+高清视频下载
  6. elasticsearch 单节点实现
  7. Android各种模拟器使用笔记
  8. python 中的"switch"用法
  9. hdu 4454 Stealing a Cake(计算几何:最短距离、枚举/三分)
  10. 请描述Java中的时间监听机制?