HTTP协议发展史
一、HTTP/0.9
- HTTP协议原型
- 设计缺陷
- 只支持GET方法
- 不支持多媒体内容
- 只有HTML对象
二、HTTP/1.0
- 广泛使用
- 增加多种方法
- 支持多媒体对象
- 无连接、无状态
- ......
三、HTTP/1.1
- 长连接
- 管道化
- 缓存处理
- 断点传输
- ......
3.1 keep-alive(长连接)
使用持久连接,一次连接完成多次请求和响应
很明显:时间和效率都有很大的提升
四、HTTP/2.0
- 性能进一步提升
- 二进制分帧
- 多路复用
- 首部压缩
- 服务器推送
4.1 多路复用
在一个信道上传输多路信号或者数据流的过程和技术 通信运营商可以避免维护多条线路,从而有效地节约运营成本
- 二进制分帧是基础,通信单位是帧(不再是数据报文)
- 多请求并不依赖多TCP连接
- 并行在一个TCP连接交互多种类型信息
4.2 服务器推送
- GET/index.html HTTP/1.1
- GET/style.css HTTP/1.1
- GET/script.js HTTP/1.1
多路复用与服务器推送的实例
4.3 头部压缩
- 使用Huffman code(哈夫曼编码),静态表格压缩对应的字符串
- 使用数字"2"代表"method: GET"