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

day04|计算机网络重难点之HTTP/1.0和HTTP/1.1的区别、HTTP/2.0与HTTP/1.1的区别、介绍HTTP/3.0

day04|计算机网络重难点之HTTP/1.0和HTTP/1.1的区别、HTTP/2.0与HTTP/1.1的区别、介绍HTTP/3.0

    • 8.HTTP/1.0和HTTP/1.1的区别
    • 9.HTTP/2.0与HTTP/1.1的区别?
    • 10.HTTP/3.0有了解过吗?

8.HTTP/1.0和HTTP/1.1的区别

  • 第一个是 持久连接:HTTP/1.1 默认支持持久连接,允许在一个TCP连接上发送多个 HTTP请求和响应,从而减少了因连接的建立和关闭所产生的开销;而 HTTP/1.0 默认 短连接,每次请求都需要建立一个TCP连接。它也可以通过在头部中包含 Connection:keep-alive 值来实现持久连接
  • 第二个是 管道化:HTTP/1.1 支持管道化,但并不是默认开启的。它可以让客户端 在第一个请求到达之前 就可以发送多个请求,从而减少等待时间,提高效率。而 HTTP/1.0 不支持管道化
  • 第三个是 缓存控制:HTTP/1.0 主要使用 If-Modified-Since 或者Expires 字段 来作为缓存判断的标准,而 HTTP/1.1 则引入了更多的缓存控制策略,比如 ETag 和If-None-Matech 等更多可选择的缓存头 来实现缓存控制
  • 第四个是 错误处理:HTTP/1.1 增加了一些新的HTTP状态码,比如 100 Continue,用于 增强错误处理和请求的 中间响应
  • 第五个是 Host 头:HTTP/1.1 新引入了 Host头,可以让客户端指定请求的目标主机名,从而可能让同一台服务器 托管 多个域名
  • 第六个是 带宽优化:HTTP/1.0 会存在带宽浪费的现象,当客户端只是请求 资源的某一部分 时,服务器却将 整个资源 都发送过来。而且不支持 断点续传 功能;而 HTTP/1.1 则在请求头部中引入了 range 头域,它允许 只请求资源的某个部分,返回码是 206

9.HTTP/2.0与HTTP/1.1的区别?

  • 第一个是 二进制协议:HTTP/1.1 使用文本格式 传输数据,而 HTTP/2.0 采用二进制格式,从而让解析更高效,减少解析时间
  • 第二个是 多路复用:HTTP/2.0 支持多路复用,也就是 在单个TCP多接上 并行 发送 多个请求和响应, 从而解决了 HTTP/1.1 中的 队头阻塞 的问题
  • 第三个是 头部压缩:HTTP/2.0 引入了 HPACK 压缩算法,对请求和响应的头部信息 进行压缩,减少了头部冗余信息的传播,提高了传输效率
  • 第四个是 服务器推送:HTTP/2.0 允许 服务器 主动推送资源给 客户端,而且并不需要 客户端 给出明确的请求,从而可以减少 页面加载 的时间
  • 第五个是 优先级和依赖关系:HTTP/2.0 允许 客户端 为请求设置优先级 和 请求之间的 依赖关系,让 资源加载 更有序

10.HTTP/3.0有了解过吗?

HTTP3.0 是 HTTP 协议的最新版本,它基于 QUIC 协议,使用 UDP 来传输数据,具有以下特点:

  • 第一个是 彻底解决头部阻塞问题:HTTP/2.0,尽管从逻辑上不同的流之间相互独立,不会相互影响,但在实际传输时数据还是要一帧一帧的发送和接收,一旦某一个流的数据有丢包,则同样会阻塞在它之后传输的流数据传输。而基于UDP的QUIC协议则可以更为彻底地解决这样的问题,让不同的流之间真正的实现相互独立传输,互不依赖。
  • 第二个是 连接建立时 零耗时:QUIC 在首次连接建立时,消耗的往返时延为0,从而减少连接延迟,加快页面加载速度
  • 第三个是 连接迁移:QUIC 允许在 IP地址发生变化时 保持连接状态,从而在网络切换时(如从 Wi-Fi 到 移动网络),减少 连接的中断时间,提高用户体验
  • 第四个是 向前纠错机制:每个数据包 除了它本身的内容之外,还包括了一部分 其他数据包的数据。所以当出现少量丢包时,可以通过其他包的 冗余数据进行组装 来替代 重传。虽然这样牺牲了每个数据包发送数据的上限,但是 减少了因 丢包导致的 数据重传
  • 第五个是 安全性:HTTP3.0默认使用 TLS 加密,确保了 数据传输 的 安全性

http://www.kler.cn/a/372563.html

相关文章:

  • uniapp通过id获取div的宽度,高度,位置等(应该是 任意平台都通用 )
  • 数据结构---顺序表
  • 自学C语言——VS实用调试技巧总结
  • Linux系统块存储子系统分析记录
  • linux应急响应-1
  • Redmi Note 12 Turbo 1TB root教程
  • 【C++刷题】力扣-#575-分糖果
  • K8s企业应用之容器化迁移
  • QStringList 使用详解
  • stm32的boot引脚接线
  • 样本不均衡-研究现状
  • 005 IP地址的分类
  • Consul微服务配置中心部署(在线安装)
  • 【SpringCloud】06-Sentinel
  • KVM 虚拟机Anolis OS 8.9 下利用宝塔面板中的 Docker 配置 Nextcloud + onlyoffice
  • BSV区块链为供应链管理带来效率革命
  • Python爬虫——网站基本信息
  • shell函数详解
  • 大模型面试题持续更新_Moe(2024-10-30)
  • WebRTC学习六:MediaStream 常用API介绍
  • 深度学习之激活函数
  • vue3(setup) keep-alive 列表页跳转详情缓存,跳转其它更新
  • unity 中使用zeroMq和Mqtt 进行通讯
  • layui xm-select
  • HTML入门教程14:HTML图像
  • NewStarCTF2024-Week4-Web-WP