HTTP1.0
- 短连接,每次请求都需要重新建立连接
- 不支持断点续传
HTTP1.1
- 支持长连接,同一个客户端连接可保持长连接,请求可在连接中顺序发出。
- 查看http请求头中有keepalive 参数
- 支持断点续传
- 新增24种错误码,例如409(请求的资源和资源当前的状态发生冲突),410(服务器上的某个资源被永久删除),HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。
- header中新增了请求头域(hostname)
- 文本形式传输协议
HTTP2.0
- 支持长连接,在连接中请求可以并行进行,无需等待。
- 二进制传输协议的解析比文本协议的解析要简单高效
- header压缩:前面提到过HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。
- 增加了服务端推送的功能,省去啦客户端每个资源都要从服务器请求的情况。下图是HTTP1.1和HTTP2.0消息推送的区别图解。