HTTP1.1与1.0的区别
- 长连接
1.0默认在HTTP请求响应结束后会关闭TCP通道,每个HTTP请求都要重复创建/销毁TCP通道的过程。
1.1默认支持长连接,即创建一个TCP通道可以运输N个HTTP请求,通过request header 的Connection = keep alive来标识这是一个长连接,在响应回来后不销毁TCP通道,关Connection=close时,销毁通道。 - Host属性
1.0的request header中并没有Host属性
1.1后因为虚拟主机技术发达,一个IP可能对应多个虚拟主机,故1.1加入了Host属性用于标识访问的是哪个主机,在header中不包含Host属性时,响应会返回400的错误状态码 - 100的状态码(节约带宽)
1.1后新增100的状态码。客户端可先向服务端发一个只包含header的请求,如果服务拒绝请求,则返回401的状态码。如果同意请求,则返回100的状态码,客户端此时可再将request body的信息发送给服务端。
HTTP1.1与2.0的区别
- 多路复用
2.0采用多路复用的技术,一个连接并发处理N个请求,比HTTP1.1的并发提升好几倍 - 数据压缩
2.0使用数据压缩,压缩了request header,数据体积变小,传输的就会更快,处理的请求就会变多。 - 服务器推送
2.0的客户端在请求时服务端可以将数据推送给客户端,以免客户端为请求资源不断地发送请求,一般适用于静态资源