【协议】【http2】
http1 做了哪些优化存在什么问题http1 没有持久的tcp 连接访问一个网页html jpg css js 等资源需要建立多个tcp 连接 访问资源每次请求都会导致两次往返延迟tcp握手和挥手如何解决的优化1keep-alive:长连接一个tcp 连接可以复用消除另一次tcp 慢启动的往返优化2 http1.1 pipling: 管道话的方式由客户端浏览器决定优先访问一些资源管道化c端可以同时发送多个请求到s,s 同时处理两个请求的资源但是s按照请求先来后到把资源返回c如果第一个请求资源阻塞住了后面所有的请求都被阻塞。管道化夭折的原因只是解决了请求发送的并行没有解决响应的并行化。1 只能严格按照请求顺序串行返回响应不允许响应交错到达2 如果第一个请求阻塞了并行发送的后边的所有请求都会阻塞。3 服务端pipeline 需要缓存资源服务端并行处理请求资源但是串行返回资源前边的资源没返回给c的时候剩下的资源需要s 自己缓存服务端资源占用太多。4 并行的几个请求中如果前边的 请求断连了那么即使s 处理了剩余的并行请求的资源c也hui重新发送所有的http 请求造成s重复处理。5 中间如果存在代理若代理不支持管道代理会拒绝这个http 请求或者导致http 请求的串行化。疑问 tcp 慢启动需要再了解tcp 连接建立的时候 tcp 窗口是一点一点的变化最终到一个合适的窗口大小tcp的启动整个过程非常慢优化3 大多数浏览器 为每个域名打开6-8个连接为了突破6个连接的限制会切分子域名提供静态资源。资源消耗比较多客户端需要和每个域名建立tcp 请求多域名的缺点针对那么多tcp 连接c 和s 都是有额外开销每个tcp 连接都要经过建立tcp 连接慢启动阶段页面加载完之后tcp 连接大多数都用不到了74%的连接仅仅处理一次请求资源消耗。整体的效率低优化4 资源组合比如把多个 js css 合并成一个文件达到建立更少的连接的目的 拼接多张图片合为一张更大的图片sprite图优化5 嵌入资源为了减少下载次数直接嵌入到网页里边。维护成本还是有点高现在很多网站都已经启动了http2 了如何禁掉命令行启动浏览器加参数 --disable-http2http2http1升级2环境搭建linux环境工具nghttp2 官网https://www.nghttp2.org/http2二进制分帧就是把原来http1中的请求和响应按照帧格式标准化成格式一样的小包裹。这些小包裹带着帧类型和流ID可以乱序发送和接受不再像http1的pipeline 一样第一个请求没有返回第二个请求的响应就会一直被阻塞真正实现了多路复用。同一个请求响应是一条流其帧的流id是一样的。帧类型 header帧和 data帧。HPACK头部压缩http中请求头很多的header字段和其值是固定的每次发请求都要重复发一次这些header数据占用的带宽较大。HPACK通过对header头部压缩达到减少header带宽的效果。HPACK压缩使用两张表一张静态表 一张动态表两张表用于存储header的字段和对应的值。每次请求值需要使用表中对应的索引即可。静态表是一张预定义的表格硬编码在http2协议中的共1-61个编号。把GET、“Host”、Content-Type这些最常用的头部字段提前编好1-61的固定编号传输时直接发编号代替整串文字。其中部分编号对应的键值对是完整的比如编号2对应:method: GET、编号16对应accept-encoding: gzip, deflatekey和value都已预定义完成。其余大部分编号的value位置为空比如编号1对应:authority、编号32对应cookie这类编号可以直接引用预定义的key再搭配自定义的value使用依然是完整的键值对条目。具体来说当编码器遇到这类头部时它会采用‌“带索引的字面量表示法”‌Indexed Name, Literal Value。以下是其存储和传输的具体步骤传输过程Key 用编号Value 用明文或哈夫曼编码在二进制帧中这个头部会被拆成两部分发送‌第一部分引用 Key‌发送静态表中该 Key 对应的‌索引编号‌。这告诉解码器“我要用的字段名是静态表里第 N 号那个”。‌第二部分传输 Value‌紧接着发送具体的 ‌Value 字符串‌。这个 Value 可以选择‌直接明文传输‌。也可以选择使用 ‌Huffman 编码‌压缩后传输通常为了节省空间都会选 Huffman 编码。是否存入动态表由编码器决定传输完这个 Key(索引) Value(字面量) 的组合后编码器会根据策略决定是否将其存入动态表这对应了 HPACK 的三种指令指令类型行为描述典型场景‌增量索引 (Incremental Indexing)‌将完整的 Key Value 作为新条目‌存入动态表‌。下次再传相同的 Cookie 时就可以直接用动态表的新索引连 Value 都不用传了。大多数普通请求希望后续复用。‌不索引 (Without Indexing)‌‌不存入‌动态表仅本次传输使用。Value 依然通过字面量发送。敏感数据如某些 Token防止侧信道攻击推断内容。‌永不索引 (Never Index)‌‌永远不存入‌动态表且标记该字段为敏感。极高安全要求的场景代理服务器通常会强制使用此模式处理 Cookie。举个直观的例子假设你要发送一个自定义 Cookiecookie: session_idabc123(1). 查找静态表‌发现 cookie 在静态表中排第 ‌32‌ 号但静态表里没有预设具体的 value。‌ (2). 编码发送‌先发送一个特殊的二进制前缀表示“我要引用静态表的 Key并附带一个新的 Value”。发送索引值 ‌32‌代表 Key 是 cookie。发送 Value session_idabc123通常会经过 Huffman 编码压缩。(3). 解码端操作‌收到索引 32从静态表取出 Key cookie。收到后面的数据解码出 Value session_idabc123。组合得到完整头部cookie: session_idabc123。(4). 更新动态表可选‌如果编码器选择了“增量索引”客户端和服务端会将 cookie: session_idabc123 这一整对存入各自的动态表。下次再发同样的 Cookie就直接发动态表的新索引比如 62只需 1 个字节。动态表是分别存储在客户端和服务器端的表格把这次请求里新出现的自定义头部临时存到双方的共享字典里下次再传直接用短编号引用原本几十上百字节的重复头部最后可能只用1-2个字节就能传完头部压缩率最高能达到90%以上弱网环境下的加载速度提升特别明显。http2服务器推送https://www.cnblogs.com/tinywan/p/8599858.html服务器推送配置server{#Ensure that HTTP/2is enabledforthe serverlisten443ssl http2;ssl_certificate ssl/certificate.pem;ssl_certificate_key ssl/key.pem;root/var/www/html;#whenevera client requests demo.html,also push#/style.css,/image1.jpg and/image2.jpg location/demo.html{http2_push/style.css;http2_push/image1.jpg;http2_push/image2.jpg;}}

相关新闻

【Linux】安装配置vsftpd(本地用户、匿名用户、虚拟用户)及vsftpd.conf配置文件详解

【Linux】安装配置vsftpd(本地用户、匿名用户、虚拟用户)及vsftpd.conf配置文件详解

1、安装 ubuntu下安装ftp sudo apt install vsftpd2、相关文件 2.1 日志 /etc/logrotate.d/vsftpd:用于Linux日志系统logrotate,记录vsftpd的日志,默认配置如下 $ cat /etc/logrotate.d/vsftpd /var/log/vsftpd.log {create 640 root adm# ftpd doesnt handle SIGHUP …

2026/10/18 14:51:57 阅读更多 →
2026年万象公文厂商排名 信创适配核心能力指标对比参考

2026年万象公文厂商排名 信创适配核心能力指标对比参考

2026万象公文厂商排名评估维度说明随着信创产业的快速发展,政企单位对智能公文工具的国产化适配、安全合规能力要求持续提升,本次2026年万象公文厂商排名针对国内信创采购需求制定,为用户选型提供客观参考。本次排名以研发实力、信创适配能力…

2026/10/19 18:06:06 阅读更多 →
建筑工程消防施工质量验收规范-幕墙相关摘录

建筑工程消防施工质量验收规范-幕墙相关摘录

建筑工程消防施工质量验收规范-幕墙相关摘录 遵循《中华人民共和国建筑法》《中华人民共和国消防法》《建筑工程质量管理条例》《建筑工程消防设计审查验收暂行规定》等文件精神,结合《建筑设计防火规范》《建筑工程施工质量验收统一标准》等现行的国家工程建设消防技术标准,…

2026/10/19 17:59:07 阅读更多 →

最新新闻

GPT订阅省钱避坑指南:官方定价、合规路径与低价渠道风险

GPT订阅省钱避坑指南:官方定价、合规路径与低价渠道风险

前阵子又有朋友问我:"有更便宜的 GPT 订阅渠道吗?"我第一反应不是列价格,而是反问一句:你说的渠道,是正规路子还是那种便宜得离谱的路子?因为在各种论坛、群里待久了你会发现,但凡涉及…

2026/10/20 12:50:37 阅读更多 →
context-mode:一种运行时上下文语义分层架构模式

context-mode:一种运行时上下文语义分层架构模式

项目标题:“context-mode”这个词目前在公开技术社区、主流编程平台及中文互联网热词榜单中,并无权威定义、无广泛共识、无成熟落地产品或框架直接以“context-mode”作为官方命名或核心模块。它既不是 Python 的内置概念,也不是 React/Vue 的…

2026/10/20 12:50:37 阅读更多 →
进口阀门市场趋势与选型采购实战:从严苛工况到避坑指南

进口阀门市场趋势与选型采购实战:从严苛工况到避坑指南

进口阀门市场这几年一直处在一种微妙的状态里:一边是国内制造业升级、炼化一体化项目扎堆上马,对高端阀门的需求水涨船高;另一边是国产替代喊了很多年,常规工况的国产阀门确实已经能打,但一到高温高压、强腐蚀、高频动…

2026/10/20 12:50:37 阅读更多 →
REA业务建模详解:从资源-事件-代理到事件驱动架构

REA业务建模详解:从资源-事件-代理到事件驱动架构

1. 项目核心:先弄清楚REA到底解决什么问题1.1 三个字母背后的完整框架第一次看到“rea”这个项目名,大概率会愣一下。没有上下文,没有副标题,连大小写都透着随意。但做业务系统时间长了就会发现,很多值得深入拆解的项目…

2026/10/20 12:50:37 阅读更多 →
context-mode技术解析:上下文感知模式原理与工程实践

context-mode技术解析:上下文感知模式原理与工程实践

项目标题是“context-mode”,但提供的输入中,项目正文为空、关键词未给出、摘要描述缺失、网络搜索内容也为纯空行。这意味着:当前输入不满足基本创作前提——你只给了我一个孤立的短语“context-mode”,没有任何上下文、领域指向…

2026/10/20 12:50:37 阅读更多 →
并网逆变器PI双闭环Simulink仿真模型:从SVPWM到参数调试

并网逆变器PI双闭环Simulink仿真模型:从SVPWM到参数调试

简介:面向电力电子与新能源并网方向的PI控制并网逆变器Simulink仿真模型(r2019b),用于解决逆变器并网电流跟踪与同步问题。模型采用双闭环PI控制,电流内环调节dq轴分量,电压外环稳定直流母线,并…

2026/10/20 12:49:36 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →