Http1.0 、1.1、2.0、3.0的区别

巨人的肩膀
3.1 HTTP 常见面试题 | 小林coding

HTTP1.0与HTTP1.1

var code = "c651fde0-a4d6-4478-aba0-6d4a84ed03d4"

HTTP1.1在HTTP1.0上的改进:

  • 使用长连接的方式改善了HTTP1.0中短连接造成的性能开销
  • 支持管道网络传输,不必等到上一个的响应,就可以接着发送第二个请求,减少整体响应时间

HTTP1.1的缺点:

  • HTTP报文中的头部信息未经压缩就发送,首部信息开销较大
  • 服务器响应是按照请求达到的顺序进行响应的,如果某个响应很慢,就会导致队头阻塞
  • 没有请求优先级控制
  • 请求只能从客户端开始,服务器只能被动响应
  • 明文传输,不安全

HTTP2.0

Http2.0是基于HTTPS的,所以在安全性上得到了保障。
HTTP2.0在HTTP1.1上的改进:

  • 头部压缩,头部信息压缩(HPACK算法),传输量减少,性能得到提高
  • 采用二进制格式,头信息和body都是二进制,增加了传输效率
  • 并发传输,HTTP1.1是基于“请求-响应”方式的,处理完一个事务(请求-响应),才会处理下一个事务,这也是导致队头阻塞的原因。
    引入Stream的概念,多个Stream复用一个TCP连接,一个Stream中有多个Message,一个Message 就是一个请求或响应
  • 服务器推送,可以主动向客户端发送信息

HTTP2.0的缺点:

  • 引入Stream,虽然解决了HTTP层的队头阻塞,但是又导致了TCP层的阻塞
    (TCP的滑动窗口中,TCP必须保证接收到的字节数据是完整且连续的,这样才会将接收到的数据上交给上层)

HTTP3.0

HTTP3.0将运输层改成了UDP,(基于UDP的QUIC协议实现最大努力的可靠性交付)
基于UDP的好处:

  • 无队头阻塞
  • 更快的连接建立
  • 连接迁移
posted @   秋天Code  阅读(18)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示