【网络工程】HTTP1.0、HTTP1.1、HTTP2.0、HTTP3.0的区别

前言

什么是HTTP

HTTP全称是Hyper Text Transfer Protocol,中文意思是超文本传输协议。它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求通常是由像浏览器这样的接受方发起的。一个完整的 Web 文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等。

HTTP1.0特性

每次请求都会建立一次TCP连接,处理完立即断开,这种方式叫做短连接。短连接会导致有大量的“握手报文”和“挥手报文”占用了带宽。

HTTP1.1特性

默认使用Connection: keep-alive,避免重复建立TCP连接和断开,这种连接方式叫长连接。但是服务器会按照请求的顺序去返回响应的内容,无法存在并行响应。

HTTP2.0特性

二进制流和帧

相比于1.0的文本进制,HTTP2.0使用了二进制数据流和帧,用帧对数据进行标识,这样可以实现并行响应,客户端接收到数据根据帧的标识对数据进行合并,不会出现错乱。

多路复用

HTTP2.0只需要一个TCP连接即可建立多次响应。

头部压缩

HTTP1.x头部数据都是以纯文本形式发送,而HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小

服务器推送

服务器还可以额外的向客户端推送资源。

HTTP3.0特性-QUIC协议(Quick UDP Internet Connection)

无队头阻塞

虽然HTTP2.0的多路复用解决了HTTP层的队头阻塞,但TCP层还是存在队头阻塞问题(一帧帧的数据流可能是乱序到达的,需要收集完所有数据排序整理后才能传递至下一层,如果丢失了某个包,就会出现队头阻塞)。所以基于UDP层的QUIC协议诞生了

快速连接

基于UDP作为传输层协议,QUIC的握手连接更快,并且使用了最新的TLS协议,可以支持客户端无需等待握手完成就开始发送数据,实现了快速连接

连接迁移

在网络切换的时候,例如wifi切换到4G数据,TCP必须建立新的连接才继续传输。而QUIC协议使用了64位随机数作为连接的ID,可以继续连接,不会重连。

总结:

  • HTTP1.0:为无状态 、无连接
  • HTTP1.1:可以持久连接,新增缓存处理,支持断点传输
  • HTTP2.0:使用二进制分帧,多路复用,头部压缩,服务器推送
  • HTTP3.0:   无队头阻塞,快速连接,连接迁移平滑

猜你喜欢

转载自blog.csdn.net/haidong55/article/details/128377026
今日推荐