HTTP——HTTP1.0/1.1/2.0之间的区别

HTTP1.0/1.1之间的区别

  1. HTTP1.1默认为长连接,而http1.0默认为短连接。因此http可以使用长连接使多个http连接请求复用一个TCP连接,降低连接的延迟;
  2. HTTP1.1在请求头中引入了range头域,允许只请求资源的某一部分,并返回206状态码;HTTP1.0中则只能请求整个对象;
  3. HTTP1.0中主要使用header 里的 If-Modified-Since,Expires 来做为缓存判断的标准;而HTTP1.1中引入了Etag、If-Unmodified-Since、If-Match、If-None-Match 等更多可供选择的缓存头来控制缓存策略;
  4. HTTP1.1中新增了host字段,用来指定服务器的域名,而HTTP1.0中认为每台服务器只绑定唯一一个IP地址。但现在每台物理服务器上可以存在多个虚拟主机,共享一个IP地址,需要host字段请求一个服务器上的不同网站;
  5. 新增了除GET、POST以外的其他方法。

HTTP1.1/2.0之间的区别

  1. 二进制协议:1.1中,头信息必须是文本,数据体可以使文本也可以是二进制;2.0中,头信息和数据体都是二进制,统称为“帧”,这也是多路复用的基础。
  2. 多路复用:2.0仍然复用TCP连接,但是可以同时发送多个请求和响应,避免了1.1中可能发生的“队头堵塞”。
  3. 数据流:由于多路复用,2.0中的信息不是按照顺序发送的,因此需要对数据包进行标记,每个请求或者返回的数据包,称为一个数据流。在数据包发送时,会标记数据流的ID,用来区分。
  4. 头信息压缩:由于HTTP1.1协议不带有状态,每次请求都会附上所有信息,比如Cookie和User Agent,浪费了很多带宽。HTTP2.0对这一点做了优化,一方面,头信息会经过gzip压缩,另一方面,客户端和服务器会共同维护一张头信息表,所有字段放入这个表并生成索引号,这样就不用发送重复字段,只发送索引就可以了。
  5. 服务器推送:HTTP2.0允许服务器未经请求主动发送资源,提前给客户端推送必要的资源 ,这样就可以相对减少一些延迟时间。这里需要注意的是 http2 下服务器主动推送的是静态资源,和 WebSocket 以及使用 SSE 等方式向客户端发送即时数据的推送是不同的。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值