HTTP 发展至今,总共经历了四个版本——HTTP 0.9、HTTP 1.0、HTTP 1.1、HTTP 2.0
HTTP 0.9
他是最早发布的一个版本,它只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。只能发送HTML格式字符串。
HTTP 1.0
支持多种数据格式,增加POST、HEAD等方法,增加头信息,支持缓存,每次连接只能发送一个请求
HTTP 1.1
默认长连接,请求管道化(允许多个请求同时发送,增加了并发性),新增了请求方式 PUT、DELETE 等,请求头增加HOST字段来指定服务器的域名,引入了更多的缓存控制策略,支持断点传输、分块传输
HTTP 2.0
二进制分帧:头信息和数据体都是二进制(头信息帧和数据帧)
完全多路复用,而非有序并阻塞的、只需一个连接即可实现并行
为什么HTTP1不能多路复用,因为HTTP1是有序的按顺序来的,而http2不是有序的。还有HTTP1是基于文本分割解析的协议,如果多路复用会导致顺序错乱,导致解析错误,http2则使用的是帧的方式相当于切分成一块一块的,而每一块有他自己的序列号,所以可以实现多路复用
头部压缩,使用报头压缩,降低开销
服务器推送