http2和http3

news/2024/12/31 7:09:54/文章来源:https://www.cnblogs.com/zjw-blog/p/18638732

HTTP/2 和 HTTP/3 是 HTTP 协议的升级版本,主要为了解决 HTTP/1.x 协议的性能瓶颈和安全性问题。以下是它们的主要目标和解决的问题:

HTTP/2 的主要目标和解决的问题

1. 性能优化

  • 多路复用(Multiplexing):

    • HTTP/1.x 中,每个请求需要单独建立一个 TCP 连接,或者使用持久连接(Keep-Alive)但仍然是串行处理请求。
    • HTTP/2 允许在同一个 TCP 连接上并行发送多个请求和响应,减少了延迟。
  • 头部压缩(Header Compression):

    • HTTP/1.x 的头部信息是纯文本,且每次请求都会重复发送相同的头部(如 User-Agent、Cookie 等)。
    • HTTP/2 使用 HPACK 算法对头部进行压缩,减少了数据传输量。
  • 服务器推送(Server Push):

    • HTTP/2 允许服务器在客户端请求之前主动推送资源(如 CSS、JavaScript 文件),减少了额外的请求延迟。

2. 安全性

  • HTTP/2 通常基于 HTTPS(TLS/SSL)运行,强制加密传输数据,提高了安全性。

3. 二进制协议

  • HTTP/1.x 是基于文本的协议,解析效率较低。
  • HTTP/2 使用二进制格式传输数据,解析效率更高,减少了错误。

HTTP/3 的主要目标和解决的问题

1. 基于 QUIC 协议

  • HTTP/3 使用 QUIC 协议代替 TCP,解决了 TCP 的一些固有缺陷:**
    • 队头阻塞(Head-of-Line Blocking):
      • 在 HTTP/2 中,如果 TCP 连接中的一个数据包丢失,整个连接会被阻塞,直到丢失的数据包重传成功。
      • QUIC 基于 UDP,每个流(Stream)独立处理,避免了队头阻塞。
    • 连接迁移:
      • QUIC 使用连接 ID 而不是 IP 地址和端口来标识连接,当用户切换网络(如从 Wi-Fi 切换到移动数据)时,连接可以无缝迁移。

2. 更快的连接建立

  • QUIC 集成了 TLS 1.3,减少了握手次数,连接建立速度更快。
  • 在 HTTP/2 中,TCP 和 TLS 需要分别握手,增加了延迟。

3. 改进的拥塞控制

  • QUIC 提供了更灵活的拥塞控制机制,能够更好地适应不同的网络环境。

4. 安全性

  • HTTP/3 强制使用 TLS 1.3,确保数据传输的安全性。

总结

  • HTTP/2 主要解决了 HTTP/1.x 的性能瓶颈,通过多路复用、头部压缩和服务器推送提高了性能。
  • HTTP/3 进一步优化了性能,通过基于 QUIC 协议解决了 TCP 的队头阻塞问题,并提供了更快的连接建立和连接迁移功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/860840.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四、USB PD协议层之消息

先来看看协议层主要做什么事情: 本章描述了USB电源传输规范协议层的要求,包括:如何构建和使用消息的细节。 计时器和超时值的使用。 使用消息和重试计数器。 复位操作。 错误处理。 状态下的行为。(状态机)1、Message 先来了解一下Message,本规范定义了三种类型的Message…

解决方案 | 如何实现右键添加【管理系统环境变量】,更加方便快捷的直达环境变量修改页面?

实现如上效果。 本地新建一个bat文件,代码如下:(懒得编辑的直接下载做好的右键管理员身份运行就行:https://wwnb.lanzoul.com/il4DK2jbhwbi )@echo off :: 设置菜单名称、命令和图标路径 set "menuName=管理系统环境变量" set "command=mshta vbscript:cr…

服务器是否禁止了POST请求?

,服务器并没有全局禁止POST请求。通常情况下,服务器是否允许POST请求取决于具体的配置和应用程序的设置。以下是一些可能导致POST请求无法正常发送的原因及解决方法:防火墙或安全组设置:检查服务器上的防火墙或云服务提供商的安全组设置,确保没有阻止POST请求所需的端口(…

FTP登录不了(修改密码,重启后仍然无法登录)

您好,关于您提到的“FTP无法登录服务器,修改过管理密码后仍然无法登录”的问题,我们来详细分析一下可能的原因及解决方案。 FTP登录失败可能是由多种原因引起的,特别是在修改密码和重启服务器之后。以下是几个可能的原因及相应的解决方法:密码修改未生效:修改密码后,有时…

请问网站无法在外网访问怎么办

当您遇到网站无法在外网访问的情况时,这可能是由多个因素引起的。以下是详细的排查步骤和建议:检查域名解析: 首先,请确保域名已经正确解析到服务器的IP地址。您可以使用ping或nslookup命令检查域名解析是否正常。如果域名解析有问题,可能会导致外网无法访问。请确认DNS记…

无限制观看,宝宝巴士儿歌TV

点击上方蓝字睿共享关注我 前言 在现今这个应用繁多的市场中,许多同类软件都设置了付费门槛,这让家长们在挑选时感到不小的负担。但这款应用却与众不同,它完全免费,无需登录,更全程无广告打扰,为家长们提供了一个轻松无忧的选择 安装环境 [名称]:宝宝巴士儿歌 [大小]:2…

越关山——一次全新的尝试和突破

一.蓦然回首 作业一:对aigc熟悉和博客园以及GitHub使用 这份作业是接触软工课程的第一个作业。github和aigc工具早已经有了接触。在平时的写代码和完成部分作业任务时已经接收了不少的ai帮忙,ai已经彻底地改变了我们的生活,改变着学习和工作,所以如何更好地使用ai恐怕在将来…

运算放大电路

虚短和虚断的概念

【PbootCMS】测试邮件标题怎么修改(邮箱配置说明)

不喜欢默认的标题样式, 希望自定义相关参数, 可以通过修改核心文件处理。 红色标记区域代码, 可以根据实际需求修改。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站…

一文搞定宝塔LINUX部署上线前后端分离项目

一文搞定宝塔LINUX部署上线前后端分离项目 地址:http://82.156.126.178/ 部署方案: 宝塔Linux,腾讯云服务器2核2G3M,数据库使用腾讯云托管平台mysql 1.跨域问题解决 首先前端区分线上环境和开发环境,主要是请求地址不一样 import axios from axiosconst prefix=process.en…

Windows10 64环境下用Qt5.12.12自带的mingw730_64构建编译OpenCV4.1.0时cmake-3.20.6中的参数配置

一、环境条件说明: 操作系统:Windows10 64环境 编译工具:用Qt5.12.12自带的mingw730_64构建 构建对象:编译OpenCV4.1.0的Release 64位和Debug 64位动态链接库 构建工具:CMake中的参数配置 二、cmake-3.20.6中的参数配置 1、按照下图配置好OpenCV4.1.0的源代码目录和构建编…

闲着没事,用STC12C5616AD制作一个74hc595测试仪

手头有些特别廉价的直插74hc595,怕这些595因为廉价而质量不过关,因而萌发了制作一个测试仪的想法。 用测试仪先对595进行测试,功能正常了,再接入电路应用。 该测试仪能自动向595写入数据,再读出输出数据进行比对,如果读出的并口数据与串行写入的数据不同,说明该IC损坏或…