你知道http协议各版本之间的区别吗?

http协议在网络模型中处于应用层的协议,本身不传输数据包,只是规定了客户端和服务器端之间的通信格式。从http诞生以来,经历了多个版本之间的更新,目前总共有5个版本,最新版本已经到了http3.0,下面我们来看看各版本之间的差异。

一、HTTP 0.9

在这里插入图片描述

HTTP 0.9是最初的HTTP协议,已经过时。
特点:

  • 只支持GET请求
  • 没有协议头
  • 无状态性
  • 只能传输超文本

这里的无状态性指在客户端发送请求,服务器接收请求并返回结果给客户端后,客户端和服务器的连接会马上断开。这一特性在后面版本的HTTP中也一样。

二、HTTP 1.0

这一版本在请求和响应中加入了HTTP版本号,这一特点在之后的版本中保持不变。
相对于HTTP 0.9 新增以下特性:

  • 除了GET命令,新增了POST和HEAD命令
  • 不再只接收HTML格式数据,可以设置contentType传输多种数据格式
  • 新增状态码(status code)、多字符集支持、多部分发送(multi-part type)、权限(authorization)、缓存(cache)、内容编码(content encoding)等

三、HTTP 1.1

这是目前最流行的HTTP协议,我在有时候做一些小网站的时候也会使用。

相对于HTTP 1.0 新增以下特性:

  • 引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用。
  • 请求和响应都支持Host头域,认为每一个服务器都绑定唯一的一个IP地址。
  • 字节范围请求:若客户端此时已经有一部分数据,为节省带宽,可以只向服务器端请求一部分数据,这个功能在请求头的range头域实现。
  • 新增了一批Request method:HTTP1.1增加了OPTIONS,PUT, DELETE, TRACE, CONNECT方法

四、HTTP 2.0

为了解决1.1版本利用率不高的问题,提出了HTTP/2.0版本。但目前似乎还没流行起来。
主要新增特性:

  • 增加双工模式,也就是不经客户端可以同时发送多个请求,服务器端也能处理多个请求,以此来提高利用率,也是这个版本最大亮点。
  • 服务器推送:不经请求向客户端发送数据
  • 二进制分帧层
  • 数据流:将每个请求或相应的所有数据包称为一个数据流,每个数据流有一个ID,规定客户端发出的ID为奇数,服务器端发出的ID为偶数;客户端还可以设置优先级,优先级越高,服务器越优先处理
  • 头信息压缩机制:由于HTTP很多请求头信息中的字段都一样,可以先压缩后发送,而且客户端和服务器端可以同时维护一张头信息表,只用穿输索引号,大大提高效率

五、HTTP3.0

HTTP3.0 在2018年发布,基于谷歌的QUIC,底层使用udp代码tcp协议。
主要提升:

  • 使用stream进一步扩展HTTP2.0 的多路复用,传输多少文件就可以产生多少stream,若发生丢包,只需要传输丢失的stream
  • 基于UDP,提高了传输效率,降低延迟
  • 通过引入 Connection ID,使得 HTTP/3 支持连接迁移以及 NAT 的重绑定
  • HTTP/3 含有一个包括验证、加密、数据及负载的 built-in 的 TLS 安全机制
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值