http1.1和http1.0的区别
- http1.1默认持久连接,即它默认就支持长连接,而http1.0需要使用keep-alive参数来告知服务器端要建立一个长连接。http是基于TCP/IP协议的,每次建立都需要经过三次握手,如果每次通讯都需要建立一个新连接的话那会对性能造成影响。因此可以用长连接来发送多个请求。
- 管线化,客户端可以同时发送多个HTTP请求,而不用一个个等待响应。
- 另外还支持传送内容的一部分,当客户端已经有了一部分资源后只需要跟服务器端请求另一部分资源即可。这是支持文件断点续传的基础。
- 此外1.1有host域这个参数而1.0没有。现在可以web server例如tomat,设置虚拟站点是非常常见的,也即是说,web server上的多个虚拟站点可以共享同一个ip和端口。
http2.0和http1.1的主要区别
- 多路复用:http2.0采用了多路复用技术,实现了一个连接并发处理多个请求,而且并发请求的数量比1.1大了好几个数量级。
- 数据压缩:HTTP1.1不支持header数据的压缩,用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。
- 服务器推送:当我们对支持http2.0的web server请求数据时,服务器会顺便把客户端需要的其他资源一起推送给客户端,避免再次创建连接发送请求,这种方式适合加载静态资源。(服务器端推送的这些资源其实存在客户端的某处地方,客户端直接从本地加载这些资源就可以了,不用走网络,速度自然是快很多的)