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

【计算机网络】HTTP/1.0,HTTP/1.1,HTTP/2,HTTP/3汇总讲解,清晰表格整理面试重点对比

表格汇总

对比维度HTTP/1.0HTTP/1.1HTTP/2HTTP/3
传输协议TCPTCPTCP/TLS(默认加密)UDP(基于 QUIC 协议)
连接方式短连接(每次请求/响应后断开)引入持久连接(Persistent Connection),默认长连接多路复用(同一连接处理多个请求)多路复用(基于 UDP减少连接建立延迟
头部处理纯文本,无压缩纯文本,部分缓存优化(如条件请求)二进制分帧HPACK 算法压缩头部二进制格式QPACK 算法进一步压缩头部
性能问题线头阻塞严重;连接频繁创建销毁开销大缓解线头阻塞(管道化技术,但未完全解决);同一域名并发连接数有限(6-8 个)解决线头阻塞单连接承载所有请求,减少连接开销低延迟减少 TCP 握手和 TLS 协商时间
安全特性无内置加密无内置加密,需依赖 SSL/TLS强制 TLS 加密,安全性高基于 TLS 1.3,安全性进一步提升
特性汇总简单请求/响应模式每次请求需建立新连接,性能低、安全性差支持长连接,减少连接开销;引入缓存控制断点续传等优化,但仍存在线头阻塞基于二进制分帧多路复用解决线头阻塞;默认加密,性能与安全性显著提升基于 UDP 和 QUIC,进一步降低延迟,抗网络拥塞能力强,安全性更高

一句话版本,及常见追问分析

  • HTTP/1.0:采用短连接,每次请求都需重新建立和断开 TCP 连接,纯文本头部无压缩,性能较低且存在严重线头阻塞问题。

HTTP/1.0
追问:HTTP/1.0 的短连接机制,具体会带来哪些性能损耗
回答:短连接每次请求都需经历 TCP 的三次握手建立连接,请求完成后通过四次挥手断开连接。这个过程涉及多次网络往返(RTT),会消耗额外的时间和资源。特别是对于包含大量资源请求的网页,频繁创建和销毁连接会导致明显的延迟,同时增加服务器的连接管理开销降低整体传输效率

  • HTTP/1.1:默认使用持久连接减少连接开销,支持管道化部分缓解线头阻塞,引入缓存控制和断点续传,但纯文本头部有限的并发连接仍制约性能。

HTTP/1.1
追问:HTTP/1.1 的管道化技术为什么没有彻底解决线头阻塞问题?
回答:管道化允许客户端在一个 TCP 连接上连续发送多个请求无需等待响应,但服务器仍需按顺序处理返回响应。如果前面请求因处理复杂或网络问题耗时较长后续请求的响应就会被阻塞,依然存在线头阻塞。并且,由于不同浏览器对管道化的支持程度不一,实际应用中很多浏览器出于兼容性和稳定性考虑,默认关闭该功能。

  • HTTP/2:基于 TCP,通过二进制分帧多路复用彻底解决线头阻塞,利用 HPACK 算法压缩头部,支持服务器推送,默认强制 TLS 加密,显著提升性能与安全性 。

HTTP/2
追问:HTTP/2 的二进制分帧和多路复用如何配合解决线头阻塞
回答:二进制分帧将数据分割为更小二进制帧,每个帧带有唯一标识,可在连接中独立传输;多路复用则允许这些帧在同一 TCP 连接上混合交错传输。这样一来,多个请求和响应的帧能同时在连接中流动服务器可以并行处理请求,按任意顺序返回帧,客户端再根据帧标识重新组装数据。即使某个请求的处理耗时较长,也不会影响其他请求帧的传输和响应,从而彻底解决线头阻塞问题。

  • HTTP/3:基于 UDP 的 QUIC 协议,进一步降低连接建立延迟,减少 TCP 握手和 TLS 协商时间,具备更强的抗网络拥塞能力,结合 QPACK 头部压缩TLS 1.3,实现低延迟与高安全性。

HTTP/3
追问:HTTP/3 选择 UDP 替代 TCP 作为传输层协议,主要解决了哪些 TCP 的固有问题
回答:TCP 存在握手延迟(至少 1 个 RTT 完成三次握手)、队头阻塞单个数据包丢失会阻塞整个连接)以及拥塞控制策略复杂(慢开始、拥塞避免、快速重传、快速恢复)等问题拥塞控制四大算法精简总结可看我的这篇文章【计算机网络】高频计网面试总结。HTTP/3 基于 UDP 的 QUIC 协议,通过 0-RTT(零往返时间)连接恢复减少握手延迟,利用流级别的多路复用,避免单个流阻塞影响其他流,同时集成了更高效拥塞控制算法和加密机制,在弱网环境下能显著降低延迟提升传输性能抗网络抖动能力。


https://github.com/0voice

相关文章:

【计算机网络】HTTP/1.0,HTTP/1.1,HTTP/2,HTTP/3汇总讲解,清晰表格整理面试重点对比

表格汇总 对比维度HTTP/1.0HTTP/1.1HTTP/2HTTP/3传输协议TCPTCPTCP/TLS(默认加密)UDP(基于 QUIC 协议)连接方式短连接(每次请求/响应后断开)引入持久连接(Persistent Connection)&a…...

Go语言之路————并发

Go语言之路————并发 前言协程管道SelectsyncWaitGroup锁 前言 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触Go,到后面能正常完成工作上的业务开发的过程,如…...

python的家教课程管理系统

目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理,难度适中&#xf…...

0x08.Redis 支持事务吗?如何实现?

回答重点 Redis 支持事务,但它的事务与 MySQL 等关系型数据库的事务有着本质区别。MySQL 中的事务严格遵循 ACID 特性,而 Redis 中的事务主要保证的是命令执行的原子性和隔离性,即所有命令在一个不可分割的操作中顺序执行,不会被其他客户端的命令请求所打断。 最关键的区…...

互联网应用的安全防线-身份证实名认证api-身份证三要素验证

随着联网技术的普及,互联网应用已深度渗透人们的生活,从购物下单到社交互动,从金融理财到在线教育,每一次的联网互动都隐藏着一个关乎安全与信任的“隐形卫士”-身份证实名认证接口功能。它如同数字世界的“电子身份证”&#xff…...

本地跑通vue-element-admin项目

GitHub - PanJiaChen/vue-element-admin: :tada: A magical vue admin https://panjiachen.github.io/vue-element-admin 通过加速clone到本地 git clone https://gitclone.com/github.com/PanJiaChen/vue-element-admin.git # 进入项目目录 cd vue-element-admin # 安装依赖…...

el-table表格列宽度自适应

需求&#xff1a;表格错误描述列 要求按照内容最大值设置宽度&#xff1b;如果没有值 则设置最小宽度 <el-table-columnv-else-if"item.prop errorDescription":key"item.code":width"flexColumnWidth(errorDescription, tableConfigA.tableDataA…...

Mysql存储过程(附案例)

​ 文章目录 存储过程概述1、基本语法2、变量①、系统变量②、用户自定义变量③、局部变量 3、流程控制语句①、if语句②、参数③、case语句④、while语句⑤、repeat语句⑥、loop语句⑦、cursor游标⑧、handler 4、存储函数 存储过程概述 存储过程是事先经过编译并存储在数据…...

宇树科技申请 “机器人牌照” 商标,剑指机器人领域新高度​

近日&#xff0c;据天眼查信息显示&#xff0c;杭州宇树科技有限公司有了一项重大举动&#xff0c;其申请注册了 “机器人牌照”“机牌”“Robot license”“Robot plate” 等商标&#xff0c;国际分类涉及科学仪器、运输工具、广告销售等多个领域&#xff0c;当前商标状态均为…...

计算机图形学基础--Games101笔记(一)数学基础与光栅化

数学基础 向量 点乘&#xff0c;叉乘和投影&#xff1a; 插值 三角形插值 **重心坐标&#xff1a;**我们通过任意点的重心坐标来插值。 V α V A β V B γ V C V\alpha V_A\beta V_B\gamma V_C VαVA​βVB​γVC​。注意重心坐标没有投影不变性&#xff0c;如果插值三…...

Chrome拓展(Chrome Extension)开发定时任务插件

Chrome扩展定时任务插件开发指南 核心实现原理 使用Chrome Alarms API实现定时触发通过Service Worker保持后台运行本地存储保存任务配置 开发步骤 创建manifest文件 (manifest.json) {"manifest_version": 3,"name": "定时任务助手","…...

100G QSFP28 BIDI光模块一览:100G单纤高速传输方案|易天光通信

目录 前言 一、易天光通信100G QSFP28 BIDI光模块是什么&#xff1f; 二、易天光通信100G QSFP28 BIDI光模块采用的关键技术 三、100G QSFP28 BIDI光模块的优势 四、以“易天光通信100G BIDI 40km ER1光模块”为例 五、总结&#xff1a;高效组网&#xff0c;从“减”开始 关于…...

每日Prompt:迷你 3D 建筑

提示词 3D Q版迷你风格&#xff0c;一个充满奇趣的迷你星巴克咖啡馆&#xff0c;外观就像一个巨大的外带咖啡杯&#xff0c;还有盖子和吸管。建筑共两层&#xff0c;大大的玻璃窗清晰地展示出内部温馨而精致的设计&#xff1a;木质的家具、温暖的灯光以及忙碌的咖啡师们。街道…...

从另一个视角理解TCP握手、挥手与可靠传输

本文将深入探讨 TCP 协议中三次握手、四次挥手的原理&#xff0c;以及其保证可靠传输的机制。 一、三次握手&#xff1a;为何是三次&#xff0c;而非两次&#xff1f; 建立 TCP 连接的过程犹如一场严谨的 “对话”&#xff0c;需要经过三次握手才能确保通信双方的可靠连接。 三…...

SearxNG本地搜索引擎

SearxNG 是一个强大、开源的 元搜索引擎(meta search engine),它不会存储用户信息,注重隐私保护,并支持从多个搜索引擎聚合结果,用户可以自建部署,打造一个无广告、可定制的搜索平台。 🔍 什么是 SearxNG? SearxNG 是 Searx 的一个积极维护的分支(fork),意在改进…...

基于支持向量机(SVM)的P300检测分类

基于支持向量机&#xff08;SVM&#xff09;的P300检测分类MATLAB实现&#xff0c;包含数据预处理、特征提取和分类评估流程&#xff1a; %% P300检测分类完整流程&#xff08;SVM实现&#xff09; clc; clear; close all;%% 1. 数据加载与模拟生成&#xff08;实际应用需替换…...

Oracle学习日记--Oracle中使用单个inert语句实现插入多行记录

目录 前言&#xff1a; 问题现象&#xff1a; 问题分析&#xff1a; 解决方法&#xff1a; 1、insert into ... union all句式 2、insert all into ...select 1 from dual句式 总结&#xff1a; 前言&#xff1a; 最近项目中使用到了Oracle数据库&#xff0c;由于Oracle数…...

利用边缘计算和工业计算机实现智能视频分析

在人工智能和物联网取得重大进步的时代&#xff0c;智能视频分析&#xff08;IVA&#xff09;正在通过整合先进的人工智能技术来改变视频监控和分析。这项革命性的技术增强了视觉智能&#xff0c;是关键行业创新解决方案的驱动因素。在本文中&#xff0c;我们将介绍IVA的好处、…...

tomcat一闪而过,按任意键继续以及控制台中文乱码问题

问题描述 今天在打开tomcat,启动startup.bat程序时 tomcat直接闪退,后面查找资料后发现,可以通过编辑startup.bat文件内容,在最后一行加入pause即可让程序不会因为异常而终止退出 这样方便查看tomcat所爆出的错误: 然后,我明确看到我的tomcat启动程序显示如下的内容,没有明确…...

go 集成base64Captcha 支持多种验证码

base64Captcha 是一个基于 Go 语言开发的验证码生成库&#xff0c;主要用于在 Web 应用中集成验证码功能&#xff0c;以增强系统的安全性。以下是其主要特点和简介&#xff1a; base64Captcha主要功能 验证码类型丰富&#xff1a;支持生成多种类型的验证码&#xff0c;包括纯…...

【数据结构】线性表--栈

【数据结构】线性表--栈 一.什么是栈二.栈的实现1.栈结构定义&#xff1a;2.栈的初始化&#xff1a;3.栈的销毁&#xff1a;4.插入函数&#xff1a;5.删除函数&#xff1a;6.求栈顶元素&#xff1a;7.求数据个数&#xff1a;8.判空&#xff1a; 三.总结 一.什么是栈 栈是一种重…...

基于亚博K210开发板——麦克风录播测试

开发板 亚博K210开发板 实验目的 本次测试主要学习 K210 通过 I2S 接收和发送的功能&#xff0c;麦克风录音&#xff0c;扬声器播放。 实验准备 实验元件 扬声器、麦克风 元件特性 K210 开发板的麦克风同样是使用 I2S 传输数据&#xff0c;只不过麦克风使用的是 I2S…...

操作系统-锁/内存/中断/IO

文章目录 锁自旋锁互斥锁悲观锁和乐观锁 内存管理物理/虚拟内存页表段表虚拟内存布局写时复制copy on writebrk&#xff0c;mmap页面置换算法 中断中断分类中断流程 网络I/OI/O模型服务器处理并发请求 锁 自旋锁 自旋锁是一种基于忙等待&#xff08;Busy-Waiting&#xff09;…...

割点与其例题

割点 定义&#xff1a; 若一个点在图中被去掉后&#xff0c;图的连通块个数增加&#xff0c;那么这个点就被称为“割点”。如下图所示红点。 定义说白了就是若去掉一个点&#xff0c;图被“断开”的点称为割点。 朴素算法&#xff1a; 枚举每个点 u。遍历图&#xff0c;如果…...

CSS实现文本自动平衡text-wrap: balance

不再有排版孤行和寡行 我们都知道那些标题&#xff0c;最后一个单词换行并单独站在新行上&#xff0c;破坏了视觉效果&#xff0c;看起来很奇怪。当然&#xff0c;有老式的 手动换行或将内容分成不同部分。但您听说过text-wrap: balance吗&#xff1f; 通过应用text-wrap: bal…...

【未完】【GNN笔记】EvolveGCN:Evolving Graph Convolutional Networks for Dynamics Graphs

Evolving Graph Convolutional Networks for Dynamics Graphs 视频链接&#xff1a;《图神经网络》 相关系列&#xff1a; 《Dynamic Graph的分类》《动态图网络之Dynamic Self-Attention Network》 文章目录 Evolving Graph Convolutional Networks for Dynamics Graphs一、…...

【愚公系列】《Manus极简入门》042-投资策略分析师:“投资智慧导航”

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…...

《AI大模型应知应会100篇》第65篇:基于大模型的文档问答系统实现

第65篇&#xff1a;基于大模型的文档问答系统实现 &#x1f4da; 摘要&#xff1a;本文详解如何构建一个基于大语言模型&#xff08;LLM&#xff09;的文档问答系统&#xff0c;支持用户上传 PDF 或 Word 文档&#xff0c;并根据其内容进行智能问答。从文档解析、向量化、存储到…...

P1439 【模板】最长公共子序列

P1439 【模板】最长公共子序列 - 洛谷 题目描述 给出1, 2, …, n的两个排列P1​和P2​&#xff0c;求它们的最长公共子序列。 输入格式 第一行是一个数n。 接下来两行&#xff0c;每行为n个数&#xff0c;为自然数1, 2, …, n的一个排列。 输出格式 一个数&#xff0c;即…...

LLaMA-Factory:环境准备

一、硬件和系统 操作系统: Ubuntu 24.04.2 LTS&#xff08;64位&#xff09;GPU: NVIDIA RTX 4090 笔记本 GPU&#xff0c;16GB显存CPU: 建议高性能多核 CPU&#xff08;如 Intel i7/i9 或 AMD Ryzen 7/9&#xff09;以支持数据预处理&#xff0c;我的是32核。RAM: 至少 32GB&…...

polarctf-web-[rce1]

考点&#xff1a; (1)RCE(exec函数) (2)空格绕过 (3)执行函数(exec函数) (4)闭合(ping命令闭合) 题目来源&#xff1a;Polarctf-web-[rce1] 解题&#xff1a; 这段代码实现了一个简单的 Ping 测试工具&#xff0c;用户可以通过表单提交一个 IP 地址&#xff0c;服务器会执…...

AI实践用例---日程规划(通用日程管理文件ICS)灵感踩坑日常

我是一位践行独立开发者之路的菜鸟开发者。 由于执行力较差,常常有很多想法但是很多时候没有去践行。 所以我有了让大模型为我生成日程安排的想法,这确实可以,很简单。只需要将你的想法告诉ai就行了。 例如: 发给AI的提示词: 我想你帮我对,嗯,未来的一年做一个嗯,大…...

MySQL 8.0 OCP 1Z0-908 121-130题

Q121.Examine these statements and output: mysql> GRANT PROXY ON accountinglocalhost TO ’ ‘ ‘%’; mysql> SELECT USER(), CURRENT_USER(), proxy_user; --------------------------------------------------------- |USER() | CURRENT_USER() | proxy_user I | …...

InfluxDB 2.7 连续查询实战指南:Task 替代方案详解

InfluxDB 2.7 引入了 Task 功能&#xff0c;作为连续查询&#xff08;CQ&#xff09;的现代替代方案。本文详细介绍了如何使用 Task 实现传统 CQ 的功能&#xff0c;包括语法解析、示例代码、参数对比以及典型应用场景。通过实际案例和最佳实践&#xff0c;帮助开发者高效迁移并…...

计算机网络 : Socket编程

计算机网络 &#xff1a; Socket编程 目录 计算机网络 &#xff1a; Socket编程引言1.UDP网络编程1.1 网络地址与端口转换函数1.2 本地环回1.3 EchoServer1.4 DictServer1.5 DictServer封装版1.6 简单聊天室 2.TCP网络编程2.1 TCP Socket API详解2.2 Echo Server2.3 Echo Serve…...

C++动态内存分配

内存管理 1.代码段&#xff08;Code Segment / Text Segment&#xff09;常量区2. 数据段&#xff08;Data Segment&#xff09;静态区3. BSS 段&#xff08;未初始化数据段&#xff09;4. 堆&#xff08;Heap&#xff09;5. 栈&#xff08;Stack&#xff09;6. 内存映射段&…...

git版本控制学习

1.环境搭配 2.Linux常用指令 cd:更改目录cd..回到上一级目录pow:显示当前所在的目录路径li(||):列出当前目录所有文件&#xff0c;只不过||例出的内容更为详细touch:新建一个文件夹如touch index.js就会在当前目录下新建一个index.js文件rm:删除一个文件,rm index.js 就会把in…...

在MYSQL中导入cookbook.sql文件

参考资料&#xff1a; GitHub 项目&#xff1a;svetasmirnova/mysqlcookbook CSDN 博客&#xff1a;https://blog.csdn.net/u011868279/category_11645577.html 建库&#xff1a; mysql> use mysql Reading table information for completion of table and column names …...

安科瑞AcrelEMS3.0企业微电网智慧能源平台-安科瑞 蒋静

1、平台介绍 Acrel-EMS3.0 智慧能源平台是针对企业微电网的能效管理平台&#xff0c;满足江苏省《新型电力负荷管理系统数据接入规范》的技术架构&#xff0c;可通过云云互联方式接受电力平台的调度指令和策略下发&#xff0c;支持作为微网调度子系统或子平台。 2、解决方案 …...

5G-A和未来6G技术下的操作系统与移动设备变革:云端化与轻量化的发展趋势

目录 5G技术带来的革命性变革 云端化操作系统的实现路径 完全云端化模式 过渡性解决方案 未来操作系统的发展方向 功能架构演进 安全机制强化 移动设备的形态变革 终端设备轻量化 物联网设备简化 实施挑战与应对策略 技术挑战 商业模式创新 总结与展望 5G技术作为…...

TensorFlow/Keras实现知识蒸馏案例

创建一个“教师”模型&#xff08;一个稍微复杂点的网络&#xff09;。创建一个“学生”模型&#xff08;一个更简单的网络&#xff09;。使用“软标签”&#xff08;教师模型的输出概率&#xff09;和“硬标签”&#xff08;真实标签&#xff09;来训练学生模型。 import tens…...

能源数字化转型关键引擎:Profinet转Modbus TCP网关驱动设备协同升级

在工业自动化的世界中&#xff0c;ModbusTCP和Profinet是两个非常重要的通讯协议。ModbusTCP以其开放性和易用性&#xff0c;被广泛应用于各种工业设备中&#xff1b;而Profinet则以其高效性和实时性&#xff0c;成为了众多高端设备的首选。然而&#xff0c;由于这两种协议的差…...

大模型的实践应用43-基于Qwen3(32B)+LangChain框架+MCP+RAG+传统算法的旅游行程规划系统

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用43-基于Qwen3(32B)+LangChain框架+MCP+RAG+传统算法的旅游行程规划系统。本报告将阐述基于大模型Qwen3(32B)、LangChain框架、MCP协议、RAG技术以及传统算法构建的智能旅游行程规划系统。该系统通过整合多种技术优势,实…...

【Unity】用事件广播的方式实现游戏暂停,简单且实用!

1.前言 在做Unity项目的时候&#xff0c;要考虑到“游戏暂停”的功能&#xff0c;最直接的办法是修改游戏的Time.TimeScale 0f。但是这种方式的影响也比较大&#xff0c;因为它会导致游戏中很多程序无法正常运行。 于是我就有了一个想法&#xff0c;在游戏中想要暂停的对象&…...

二维数组以及C99中的变长数组(如何在VS2022中使用苹果的clang编译器)

一、二维数组的创建 1.1 二维数组的概念 在上一篇文章中所写的称为一维数组&#xff0c;数组的元素都是内置类型的&#xff0c;如果我们把一维数组作为数组的元素&#xff0c;这时候就是二维数组&#xff0c;二维数组作为数组元素的数组被称为三维数组&#xff0c;二维数组以…...

影楼精修-肤色统一算法解析

注意&#xff1a;本文样例图片为了避免侵权&#xff0c;均使用AIGC生成&#xff1b; 本文介绍影楼精修中肤色统一算法的实现方案&#xff0c;并以像素蛋糕为例&#xff0c;进行分析说明。 肤色统一就是将人像照片中皮肤区域的颜色进行统一&#xff0c;看起来颜色均匀一致&…...

mac的Cli为什么输入python3才有用python --version显示无效,pyenv入门笔记,如何查看mac自带的标准库模块

根据你的终端输出&#xff0c;可以得出以下结论&#xff1a; 1. 你的 Mac 当前只有一个 Python 版本 系统默认的 Python 3 位于 /usr/bin/python3&#xff08;这是 macOS 自带的 Python&#xff09;通过 which python3 确认当前使用的就是系统自带的 Pythonbrew list python …...

城市内涝监测预警系统守护城市安全

一、系统背景 城市内涝是指由于强降水或连续性降水超过城市排水能力&#xff0c;导致城市内产生积水灾害的现象。随着气候变化和城市化进程的加快&#xff0c;城市内涝现象愈发频繁和严重。传统的城市排水系统已难以满足当前的城市排水需求&#xff0c;特别是在暴雨等极端天气条…...

ThinkPad X250电池换电池芯(理论技术储备)

参考&#xff1a;笔记本电池换电芯的经验与心得分享 - 经典ThinkPad专区 - 专门网 换电池芯&#xff0c;需要克服以下问题&#xff1a; 1 拆电池。由于是超声波焊接&#xff0c;拆解比较费力&#xff0c;如果暴力撬&#xff0c;有可能导致电池壳变形... 2 替换电池芯的时候如…...

2025第三届盘古初赛(计算机部分)

前言 比赛的时候时间不对&#xff0c;打一会干一会&#xff0c;导致比赛时候思路都跟不上&#xff0c;赛后简单复现一下&#xff0c;希望大家批批一下 计算机取证 1、分析贾韦码计算机检材&#xff0c;计算机系统Build版本为&#xff1f;【标准格式&#xff1a;19000】 183…...