HTTP 1.0需要使用keep-alive参数告知服务器需要建立一个长连接,而HTTP 1.1默认支持长连接,长连接避免了多次TCP三次握手
HTTP 1.1支持只发送header信息,如果服务器认为客户端有权限请求服务器,则返回100,否则返回401,客户端如果接收到100,才开始把请求body发送到服务器,当服务器返回401的时候,客户端就不用发送body了,节约了带宽,另外HTTP还支持传送内容的一部分。这样当客户端已经有一部分的资源后,只需要跟服务器请求另外的部分资源即可。这是支持文件断点续传的基础
现在web server例如Tomcat设置虚拟站点是非常常见的,web server的多个虚拟站点可以共享同一个ip和端口,HTTP 1.0没有host域,HTTP 1.1才支持这个参数
HTTP 2.0使用了多路复用技术,做到同一个连接并发处理多个请求,并且并发请求的数量比HTTP 1.1大了好几个数量级
数据压缩
HTTP 1.1不支持header数据压缩,HTTP 2.0使用HPACK算法对header数据进行压缩,这样减少数据体积,网络传输更快
服务器推送
当对支持HTTP 2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的资源一起推送到客户端,避免客户端再次创建连接发送请求到服务端获取,适合静态资源加载,这样下次客户端访问就可以直接访问本地