当前位置: 首页 > news >正文

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

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

HTTP1.0与HTTP1.1

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的好处:

  • 无队头阻塞
  • 更快的连接建立
  • 连接迁移
http://www.lryc.cn/news/63893.html

相关文章:

  • Python——基于YOLOV8的车牌识别(源码+教程)
  • c# 数据保存为PDF(一) (spire pdf篇)
  • Stable Diffusion使用方法
  • 高性能:负载均衡
  • Matplotlib 安装介绍
  • DNS:关于 DNS 基本概念的一些笔记整理
  • 机器人学一些知识
  • 应用,auto,内联函数
  • Flask框架的学习---01
  • 免费gpt-4-国内使用gpt-4
  • 《程序员面试金典(第6版)面试题 16.09. 运算
  • asp.net基于web的校园美食派送配送系统
  • 【JAVA】#详细介绍!!! 文件操作之File对象(1)!
  • Vue基本的内置指令
  • 华为孟晚舟当值首秀:2030年AI算力将增长500倍!
  • 关于python异常的总结
  • 基于Java+SpringBoot+vue学生学习平台详细设计实现
  • 【云原生网关】Kong 使用详解
  • 浅谈之Java多线程
  • 【Vue3学习笔记1】一个清单应用帮你入门Vue.js
  • go破冰之旅·8·go函数基本实践及各种玩法
  • Qt - 从零到壹的 打地鼠 游戏
  • 代码自动发布系统
  • qemu-基础篇(一)——安装
  • 从根本上理解Synchronized的加锁过程
  • CANOE入门到精通——CANOE系列教程记录1 第一个仿真工程
  • JavaEE——单例模式
  • 关于数据倾斜
  • Shell第一次作业
  • 实例解读nn.AdaptiveAvgPool2d((1, 1))