Http 1.0 1.1 2.0版本的区别
一、Http1.0
浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求。
二、Http1.1
HTTP/1.0中默认使用Connection:close。在HTTP/1.1中已经默认使用Connection:keep-alive,避免了连接建立和释放的开销,但服务器必须按照客户端请求的先后顺序一次回送相应的结果,以保证客户端能够区分出每次请求的响应内容。通过Content-Length字段判断当前请求是否已经全部接收,不允许同时存在两个并行的响应。
三、Http2.0
引入了二进制数据帧和流的概念,其中帧对数据进行顺序标识,这样浏览器收到数据之后,就可以按照序列对数据进行合并,而不会出现合并后数据错乱的情况。同时因为有了序列,服务器就可以并行的传输数据,这就是流做的事情。这些数据帧都在一个tcp连接上并行发送。
四、三者的区别
4.1 Http1.0和Http1.1的区别
- 缓存处理:1.1添加了更多的缓存控制策略;
- 网络连接优化:1.1支持断点续传
- 错误状态码增多:1.1新增了24个错误状态响应码,丰富的错误码更加明确各个状态
- Host头处理:支持host头域,不再以ip为请求标志
- 长连接:减少了建立和关闭连接的消耗和延迟。
4.2 Http1.1和Http2.0的区别
- 新的传输格式:2.0使用二进制格式,1.0使用基于文本格式;
- 多路复用:连接共享,不同的request可以使用同一个连接传输
- header压缩:由于1.x中header带有大量的信息,并且得重复传输,2.0使用encoder来减少需要传输的header的大小。
参考:https://blog.csdn.net/weixin_44489066/article/details/88640088?utm_source=app&app_version=5.3.1&code=app_1562916241&uLinkId=usr1mkqgl919blen