HTTP 1.1/2/3 特性总结
HTTP/1.1 的优点有哪些1.简单2.易拓展3.跨平台HTTP/1.1 的缺点有哪些1.明文传输2.无状态HTTP/1.1 的性能如何1.http全双工长连接2.http支持管道化技术但默认不开启 HttpURLConnection、OkHttp 高层 API都封装屏蔽了 pipelining不会做连续发送。想要演示必须直接操作 Socket手写 HTTP 原始报文单TCP Socket 依旧存在响应队头阻塞问题 浏览器的解决方案同一个域名建立多条并行 TCP 连接实现并发请求。 OkHttp 连接池 就是这么干的内部维护连接池同一个域名可以创建多条 TCP Socket 长连接实现并发 HTTP/1.1 请求。HTTP/1.1 的性能缺陷请求 / 响应头部Header未经压缩就发送首部信息越多延迟越大。只能压缩 Body 的部分发送冗余的首部每次互相发送相同的首部造成的浪费较多顺序响应应用层队头阻塞TCP 层队头阻塞没有请求优先级控制请求只能从客户端开始服务器只能被动响应。HTTP/2 相比 HTTP/1.1 性能上的改进头部压缩HPACK 算法在客户端和服务器同时维护一张头信息表所有字段都会存入这个表生成一个索引号以后就不发送同样字段了只发送索引号2.二进制格式3.Stream并行传输仅解决应用层的队头阻塞通过stream id因为通过stream id便可以乱序返回响应HTTP/2 把消息切为帧 Frame每一个帧带上 Stream‑ID。把三封信拆成很多带编号小包裹A 的包裹还没送完B、C 的小包裹可以穿插着送多路复用收件人根据编号把包裹拼回完整信件谁先拼好就先响应4.服务器主动推送资源客户端和服务器双方都可以主动建立 Stream Stream ID 也是有区别的客户端建立的 Stream 必须是奇数号而服务器建立的 Stream 必须是偶数号。HTTP/2 的性能缺陷TCP 层队头阻塞问题完美解决了应用层队头阻塞问题但 TCP 层还存在队头阻塞可以优化因为 TCP 层会检测报文段损坏、丢包、乱序只有内核缓冲区完整检测到了完整报文后才会给到应用层保证给到应用层的字节流一定是连续、无损坏、有序的 TCP 不知道什么是 HTTP2 帧不会判断帧完不完整帧完整性是 HTTP2 应用层读取字节后根据帧头里面的长度字段来判断。TCP 层队头阻塞就是因为有本批传输的字节流有字节缺口时后面的不同stream id的数据就算它本身到达也不交给应用。HTTP/3 相比 HTTP/2 性能上的改进HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP且为了保证可靠传输在应用层实现了 QUIC 协议QUIC 是运行在 UDP 之上的用户态传输层协议升级版传统 UDPQUIC 干的全部是传统传输层 TCP 干的活端到端连接建立丢包检测、ACK、重传流量控制、拥塞控制多路复用逻辑 Stream把一个连接分成多条独立逻辑流彻底解决应用层和传输层的队头阻塞问题更快的建立连接 TCP 和 TLS 是分层的HTTP/3 的 QUIC 协议并不是与 TLS 分层包含了 TLS 握手 QUIC 内部集成复用了 TLS‑1.3 把 TLS 握手报文完全融入到了 QUIC 数据包格式里面TLS不再是独立分层应用层用户态实现的传输层安全协议3. 连接迁移 QUIC 协议没有用四元组的方式来“绑定” TCP 连接而是通过连接 ID 来标记通信的两个端点移动设备的网络变化后导致 IP 地址变化了只要仍保有上下文信息比如连接 ID、TLS 密钥等就可以“无缝”地复用原连接消除重连的成本没有丝毫卡顿感达到了连接迁移的功能。 IP 地址虽然是网络层的数据但是传输层 TCP 的连接标识必须依赖网络层 IP内核会把两层的信息合并使用。 TCP 报文本身不会把 IP 拷贝进 TCP 头部只是内核处理的时候把 IP 头和 TCP 头信息结合起来。所以内核协议栈收到数据包时先解析IP 头部拿到源 IP、目的 IP再解析TCP 头部拿到源端口、目的端口将四层信息拼出四元组用这个完整 key去查找内核的 TCP 连接表找到对应的 socket。所以 QUIC 是一个在 UDP 之上的伪 TCP TLS HTTP/2 的多路复用的在应用层用户态实现的传输层协议。

相关新闻

Android MediaPlayer.setPlaybackParams() 原理与实战优化

Android MediaPlayer.setPlaybackParams() 原理与实战优化

1. 项目概述在Android多媒体开发中,MediaPlayer.setPlaybackParams()是一个强大但常被忽视的API。作为一名长期从事Android音视频开发的工程师,我发现很多开发者对这个方法的理解仅停留在"可以调整播放速度"的层面,而对其底层实现机…

2026/8/11 2:12:57 阅读更多 →
基于MFC与C++的文档管理系统:架构设计与性能优化实战

基于MFC与C++的文档管理系统:架构设计与性能优化实战

1. 项目概述与核心价值最近在整理老项目代码,翻出来一个几年前用C和MFC做的文档管理系统,感觉里面的不少设计思路和踩过的坑,对现在想入门Windows桌面开发或者接手维护老项目的朋友来说,依然很有参考价值。这个项目不是什么高大上…

2026/8/11 2:12:57 阅读更多 →
变倍齐焦微距镜头:原理、测试与生产力提升全解析

变倍齐焦微距镜头:原理、测试与生产力提升全解析

变倍还能齐焦的微距镜头,是噱头还是生产力革命?如果你是产品摄影师、电商运营或者数码爱好者,一定遇到过这样的困境:拍一个产品细节,拧动镜头对焦环,画面突然“呼”地一下放大或缩小,好不容易对…

2026/8/11 2:11:57 阅读更多 →

最新新闻

diskbutler磁盘清理工具(推荐)

diskbutler磁盘清理工具(推荐)

DiskButler技术实现与使用指南 本文深入分析了基于RustTauri架构的磁盘清理工具DiskButler的技术实现与使用方法。该工具通过jwalk库实现高效的并行文件扫描,结合d3-hierarchy的squarify布局进行直观的可视化展示。其核心优势在于轻量化设计(仅2.4MB&am…

2026/8/11 3:10:17 阅读更多 →
ChatGPT Plus / Pro + Codex 自动 Debug 实战:如何让 AI 看日志、跑测试、定位 Bug 并形成修复闭环

ChatGPT Plus / Pro + Codex 自动 Debug 实战:如何让 AI 看日志、跑测试、定位 Bug 并形成修复闭环

很多开发者第一次使用 ChatGPT Codex 修 Bug 时,工作方式通常是这样的: 发现报错 ↓ 复制错误信息 ↓ 发给 AI ↓ AI 猜原因 ↓ 复制代码 ↓ 自己运行 ↓ 发现还报错 ↓ 继续问 AI这种方式当然能用。 但如果长期使用 ChatGPT Plus、ChatGPT Pro 和 Codex…

2026/8/11 3:10:17 阅读更多 →
池化层原理与应用:CNN中的降维与抗噪关键技术

池化层原理与应用:CNN中的降维与抗噪关键技术

1. 池化层:神经网络中的“降维”与“抗噪”利器在构建卷积神经网络(CNN)时,我们通常在卷积层之后紧跟着一个池化层。很多刚入门的朋友可能会觉得,卷积层负责提取特征,已经够核心了,为什么还要加…

2026/8/11 3:10:17 阅读更多 →
RAG 八股不必硬背:跟着逆境救活一个“满嘴跑火车”的知识助手

RAG 八股不必硬背:跟着逆境救活一个“满嘴跑火车”的知识助手

hello 我是逆境 阿杰入职第一周,主管给了他一个听起来很简单的任务: “把公司的产品手册、售后规则和内部 FAQ 喂给大模型,做个知识助手。” 阿杰心想,这有什么难的?把问题发给模型不就行了。 半小时后,演…

2026/8/11 3:10:17 阅读更多 →
如何实现淘宝同行数据截流自动化?全自动挂机防风控,7x24小时无人值守

如何实现淘宝同行数据截流自动化?全自动挂机防风控,7x24小时无人值守

如何实现淘宝同行数据截流自动化?全自动挂机防风控,7x24小时无人值守 搞店群运营这行,淘宝的同行数据截流,是店群运营中最耗人力也最容易出错的环节。 同行截流是店群最核心的引流手段。别人花大价钱投流的爆款,你把…

2026/8/11 3:10:17 阅读更多 →
工作流作业

工作流作业

一、工作流输入变量 场景 接收对象 风格偏好 自定义祝福语二、条件分支逻辑 检测自定义祝福语内容 内容为空则AI自动生成祝福语 内容不为空则直接使用用户填写祝福语三、祝福语生成大模型提示词 你是专业祝福语创作助手,根据用户提供的场景和接收对象,生…

2026/8/11 3:09:17 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →