http1.0 1.1和2.0的区别

HTTP的1.0版本每个请求需新建TCP连接,而1.1支持连接复用和缓存优化。1.1引入了Host头部和分块传输。HTTP/2实现多路复用,二进制传输,头正拆分和压缩,以及服务端推送,提高了性能和效率。在高并发场景下,HTTP/2优于HTTP/1.x,但可能在低带宽环境中有性能问题。
摘要由CSDN通过智能技术生成

http的1.0 1.1的区别
连接复用:1.0每个请求都需要建立一个新的 TCP 连接,请求结束后立即关闭连接。1.1支持连接复用(持久连接),可以在一个连接上发送多个请求和响应,并且配套了流水线机制

流水线机制:多个连接共用一个tcp请求时,必须等待前一个请求响应返回后才能发送下一个请求,类似流水线。但依旧存在响应阻塞和死锁的问题。

块传输:1.1引入了分块传输编码机制,传输大文件时可以分块传输,从而减少网络拥堵
host头部:1.1引入了host头部,可以在同一个IP地址下支持多个域名,提高服务器的利用率

缓存机制:1.1提供了更多的缓存机制,除了1.0基于过期时间的缓存策略,还有ETag和If-None-Match等


http的1.1和2.0的区别
多路复用:一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。 

二进制传输:文本格式的解析比较复杂,因此在解析和处理请求和响应时会消耗大量的 CPU 和内存资源,性能不高。所以HTTP/2 引入了二进制传输,实现方便且健壮,头部可以更加高效地传输和解析,正文可以更加高效地利用网络带宽。

头正拆分和头压缩:HTTP/1.x 中头部信息和正文信息是混合在一起通过文本传输的,所以在传输过程中,如果头部信息没有完全传输完成,那么正文信息就无法传输,这就导致了头部阻塞问题。http2将请求和响应的头部信息和正文信息分开传输,且对头部信息进行压缩,减少了网络传输的数据量。

服务端推送:可以在客户端请求之前主动向客户端发送资源,提高了页面加载速度。

连接复用和多路复用的区别:
http1.1连接复用是指在一个TCP连接上可以发送多个HTTP请求和响应,避免为每个请求和响应建立新的连接,但是要求响应和请求的顺序是一致的。类似流水线。
http2.0的多路复用中响应和请求则可以乱序到达,原因一个request对应一个id,接收方通过id去归属。


适用场景区分:
HTTP/1.0适用于较为简单的网络应用场景,因为每个请求都要新建一个连接,所以高并发场景性能较差。
HTTP/1.1 适用于大多数的网络应用场景,通过连接复用,提升了性能,但是数据传输效率仍然有限。

HTTP/2.0适用于高并发、大流量的网络应用场景。HTTP/2.0支持多路复用、二进制传输、头部压缩、服务器推送等新特性,可以大幅提高网络传输效率和安全性。但是,HTTP/2.0需要服务器和客户端都支持,且在低带宽、高延迟的网络环境下可能会出现性能问题。

skywalking默认使用的是http2,因为使用了grpc,只有http2才支持。

实际场景:

前端伙伴发现网页并发对竞赛服务端请求过多时,会出现请求pending,要求服务端从http1.1配置成http2,可以提升性能?
如果是使用http1.1,前端在浏览器中请求后端的时候,目前浏览器有最多同时6个http连接的限制,多的连接就会pending,本质是阻塞,只有有http请求结束才会进行下一个;
但是如果使用http2,可以使用其多路复用的功能,此时就不会有6个连接的限制,因为多路复用可以有效节约带宽,且可以大大提升性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值