VP导航 VP导航
首页 提交网址

资讯文章 资讯 · NEWS

103 Early Hints、Brotli、HTTP/2:目录站在传输层还能抠出多少时间

2026-10-22 约 1,891 字 预计阅读 5 分钟 yiyunkj

103 Early Hints、Brotli、HTTP/2:目录站在传输层还能抠出多少时间 1

目录站的性能优化做到一定程度,会发现剩下的时间不花在图片上,也不花在 JS 上,而是花在等上——等服务器把页面拼出来,等第一个字节到,等连接建立。这一层叫传输层,改动通常不大,收益也不小。

103 Early Hints、Brotli 压缩与 HTTP/2 多路复用在请求链路上的位置

图片来源:网络,版权归原作者所有,侵权请联系删除

103 Early Hints:把等待时间用起来

服务器收到请求到返回完整 HTML 之间,有一段"思考时间":查数据库、拼模板、算排序。这段时间浏览器是空的,什么也做不了。Early Hints 就是让服务器先丢一个 103 响应回去,告诉浏览器"这些东西待会儿肯定要用,先去拿"。

HTTP/2 103
Link: </static/main.css>; rel=preload; as=style
Link: </static/app.js>; rel=preload; as=script

HTTP/2 200
Content-Type: text/html
...

浏览器收到 103 就开始拉 CSS 和 JS,等真正的 HTML 到达时,样式表已经在路上了。

几点要知道的:

  • Chrome 从 103 版本起支持,只支持 preload 和 preconnect 两种提示,prefetch 不支持
  • 只对导航请求(主文档)生效
  • 如果最终响应是跨源重定向,Chrome 会把通过 Early Hints 拿到的资源丢弃
  • 服务端支持:Apache 走 mod_http2、H2O 原生支持、Nginx 需要模块、Node 从 18.11 起支持
  • 嫌麻烦就用 CDN,Cloudflare、Fastly 都做成了开关

Cloudflare 公开过数据:早期实验中页面加载改善最高到 30%,Shopify 在黑五期间的实测是 LCP 中位数快了 500 毫秒以上。目录站的条目页和分类页都是动态拼的,正好是 Early Hints 最适合的场景。

有个坑别踩:提示出去的资源必须在最终 HTML 里真的用上。提示了 main.css 结果页面用的是别的,等于白浪费一次请求。

顺带提一句 HTTP/2 Push

如果你以前配过 Push,可以停了。Chrome 的实测数据是 Push 在全网范围内总体是负收益——服务器很难判断浏览器缓存里已经有什么,经常推重复的东西,带宽反而浪费。现在主流浏览器都已移除支持。

Brotli:比 gzip 再小一档

Brotli 是 Google 出的压缩算法,对 HTML、CSS、JS 这类文本,通常比 gzip 小 15%~25%。原因之一是它内置了一份 Web 常用字符串字典,HTML 标签、CSS 属性、JS 关键字这些重复出现的片段不用逐字描述。

配置要点:

项目建议
静态资源构建时预压,等级 11
动态响应等级 4~6,或直接用 gzip
不要压图片、WOFF2 字体、视频、zip(已经压过)
必须配Vary: Accept-Encoding

两个限制记一下:Brotli 只在 HTTPS 下被浏览器声明支持;等级 11 的压缩速度很慢,动态内容每请求压一次会拖慢 TTFB,所以动态内容要么降级,要么用 gzip。

浏览器支持率现在在 96% 以上,剩下的自动回落 gzip,服务端同时开着就行,不用做取舍。Nginx 的写法:

brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;

HTTP/2 之后该停掉的旧优化

很多 2015 年之前的优化套路,在 HTTP/2 多路复用之后变成了负优化。如果你还在做,可以停了:

  • 域名分片。当年为了突破浏览器同域并发数限制,把资源分散到 cdn1、cdn2、cdn3。HTTP/2 单连接就能并发,分片反而多了 DNS 查询和 TLS 握手
  • CSS/JS 全量内联。内联是为了省请求,但 HTTP/2 下一个请求的成本低得多,而内联会让缓存失效范围变大。只有真正阻塞首屏的关键 CSS 值得内联
  • 图标雪碧图。合成一张大图减少了请求数,但代价是每次改一个图标整张图缓存全失效。HTTP/2 下分别请求更划算

不过图标这件事在目录站上要另说。一页几百个站点小图标,就算 HTTP/2 能并发,几百个请求仍然不是零成本。这种情况更好的做法是 SVG sprite 加 <use> 引用,或者用图标字体,把请求压到一两个。

怎么判断该做哪个

看 TTFB。如果 TTFB 超过 600ms 且页面是动态生成的,先上 Early Hints,它直接对冲的就是这段等待。如果 TTFB 正常但传输体积大,看 Content-Encoding 响应头有没有 br,没有就开 Brotli。如果两者都正常,但 PageSpeed 还在提示"避免 DOM 规模过大",那是页面结构的问题,跟传输层没关系了。

本文标签 103 Early Hints Brotli压缩配置 HTTP2多路复用
← 上一篇 Lighthouse 98 分,Search Con 下一篇 → 条目上的“最后更新”别乱写:dateModified

— 本文完 —

提交网址

发现好站,欢迎自荐收录

站内搜索

站点统计

  • 今日审核0
  • 已收录站点3744
  • 正常访问3738
  • 失联站点6
  • 累计访问83

网站分类

  • AI工具 0
    AI对话0 AI绘画0 AI写作0 AI编程0 AI音视频0 AI办公效率0
  • 开发编程 0
    前端开发0 后端开发0 移动开发0 开源与代码托管0 数据库0 开发文档与教程0
  • 设计素材 0
    UI设计0 图标素材0 免费图库0 字体下载0 配色工具0 设计模板0
  • 站长工具 0
    网站统计0 SEO工具0 域名与主机0 收录提交0 建站程序0 运维监控0
  • 学习教育 0
    编程教程0 语言学习0 职业技能0 公开课与慕课0 考试题库0 中小学教育0
  • 生活服务 0
    交通出行0 外卖点餐0 房产租房0 医疗健康0 政务办事0 快递物流0
  • 影音娱乐 0
    影视观看0 音乐音频0 游戏资源0 短视频直播0 小说阅读0
  • 电商购物 0
    综合商城0 比价工具0 导购返利0 二手交易0 团购优惠0
  • 综合其他 1
    实用工具0 资源合集0 小众站点0 个人博客0 论坛社区0
  • 新闻资讯 0
    科技资讯8 财经媒体1 行业动态0 社会热点0 综合门户0
  • 资讯文章 120

最新收录

  • 通义千问
  • Kimi
  • 车机屋-专业车机系统研究平台,海量正
  • 阿里巴巴矢量图标库
  • DeepSeek
  • 搜不到结果的时候给什么:目录站零结果
  • 分享出去那张卡片:目录站的 og:i
  • 条目上的“最后更新”别乱写:date

浏览排行

  1. 满分作文网 6
  2. Let's Enhance 3
  3. 淘菜菜 3
  4. MasterClass 3
  5. TypeScript 中文网 3
  6. Zhengziying 3
  7. 得意生活 3
  8. 镇江网友之家 3

联系我们

bQ:12345678

电话:400-8888-888

邮箱:admin@example.com

时间:09:00-21:00

友情链接

车机屋·焊锡条·探兔AI导航·静电测试仪·大学生联盟

关于我们|广告合作|隐私条款|网站地图

原ICP备00000000号-1,@2026

由 Z-BlogPHP 驱动