写点什么

HTTP/2 推送之难,远超想象

  • 2017-06-11
  • 本文字数:11023 字

    阅读完需:约 36 分钟

在讨论页面加载性能问题时,我经常听到有人说“HTTP/2 推送可以解决这问题”,但我对这个技术的了解不多,于是打算深入研究一下。

HTTP/2 推送远比我最初想象中更复杂,也更底层,但最让我措手不及的地方在于,这种技术在不同浏览器上的表现竟然有这么大的差别,本来我还觉得这技术已经足够成熟,可以在生产环境中使用了。

本文并不是那种认为“HTTP/2 推送一无是处”的吐槽文。我觉得 HTTP/2 推送真的很强大,以后还会更加完善,但并不算能解决所有问题的万灵药。

完整的 Fetch 路径

在页面和目标服务器间,横亘着一系列可能拦截请求的缓存和其他机制:

当人们希望尝试或向别人解释 Git 或其他看得见的东西时,通常会使用类似上面这样的流程示意图,在本来就懂的人看来,这样的示意图一目了然,但不懂的人往往会一头雾水。如果你也有这种感觉,那要先说声抱歉了!希望下文能帮你更好地理解。

HTTP/2 推送的工作原理

  • 页面:嘿 example.com,能把你的首页让我看一看吗?
  • 服务器:没问题!哦,在我给你发送首页的同时,还需要发送一些样式表、图片、JavaScript,以及一些 JSON。
  • 页面:额,好的。
  • 页面:我已经看到 HTML 了,但貌似还需要一个样式……哦,好像你已经发过来了,酷!

服务器响应请求时,可以顺便包含额外的资源。例如包含一系列请求报头,这样稍后浏览器就知道如何匹配不同报头。这些额外的资源位于缓存中,当浏览器请求的资源与缓存中的匹配时即可直接从缓存中获取。

这种方法可以改善性能,原因在于可以提前发送可能需要的资源,而不需要等待浏览器索取,因此可以提高页面加载速度。

多年来我对 HTTP/2 推送的了解仅限于此,听起来挺简单,但魔鬼往往隐藏在细节中……

任何东西都可以使用推送缓存

HTTP/2 推送是一种底层网络功能,用到网络栈的任何东西都可以使用该功能。但只有确保一致性以及可预测性,才能发挥最大作用。

我试着推送一些资源,并通过下列方式收集:

  • fetch()
  • XMLHttpRequest
2017-06-11 17:164747
用户头像

发布了 283 篇内容, 共 123.8 次阅读, 收获喜欢 63 次。

关注

评论

发布
暂无评论
发现更多内容

RFID 标签在封闭空间漏扫?系统化应对策略解析

斯科信息

RFID标签

中国中铁回应尖扎黄河特大桥事故:舆情管理的危机与修复

沃观Wovision

舆情监测 沃观Wovision 舆情监测系统 中铁回应尖扎黄河特大桥

云速搭 AI 助理发布:对话式生成可部署的阿里云架构图

阿里巴巴云原生

阿里云 AI 云原生

行业速览:中国新能源汽车市场格局与关键趋势

DevOps和数字孪生

Dify 性能瓶颈?Higress AI 网关为它注入「高可用之魂」!

阿里巴巴云原生

阿里云 云原生 dify

企业一定要部署堡垒机吗?理由是什么?

行云管家

网络安全 堡垒机

MyEMS:赋能能源精细化管理的数字化利器

开源能源管理系统

开源 开源能源管理系统

速来!CodeBuddy IDE国内版公测开启!🎉

CodeBuddy

FinClip组件化方案实现App前端轻量化重构

xuyinyin

G端业务需求的高效管理——禅道实践中的“破局”与“避坑”

禅道项目管理

软件 软件需求管理 禅道项目管理 软件需求设计 需求管理软件

就在明天!8月26日丨EasyModel新品发布会等你来!

袋鼠云数栈

数字孪生 数字孪生技术 易知微 空间智能 EasyModel发布会

1688商品详情API:从数据获取到商业价值落地的全攻略

Noah

TCL电子(01070.HK)2025年H1经调整归母净利润大幅增长62.0%

财见

【HarmonyOS相机开发系列】折叠屏镜头切换优秀实践

最新动态

2025物联网与RFID产业:万亿赛道的技术破局与市场重构

斯科信息

RFID技术 RFID产业

软件工程 + AI 不是 “硬凑”,3 步走通落地关键环节

行云创新

平台工程 AI 赋能软件工程 AI赋能研发

智绘蓝图,共赢未来|Honeywell品牌发布会暨首场招商财富会圆满收官!

新消费日报

全面开放下载!Fabarta个人专属智能体免邀请码体验,功能重磅更新

Fabarta

人工智能 智能体

MyEMS:让能源管理从 “模糊粗放” 走向 “清晰可控”

开源能源管理系统

开源 能源管理系统

为鸿蒙应用“赋智”,灵云、译图智讯OCR等人工智能类SDK适配鸿蒙5

新消费日报

【客户喜报】消费者追捧,勃肯鞋亚洲收入激增24%

第七在线

MyEMS:引领能源管理升级的全方位解决方案

开源能源管理系统

开源 能源管理系统

FinClip驱动中国应用全球出海的降本增效实践

xuyinyin

大模型工具的 “京东答案”

京东科技开发者

让浏览器自己工作:AI自动化技术落地全攻略【AI助力全员提效方向】

京东科技开发者

虚引用GC耗时分析优化(由 1.2 降低至 0.1 秒)

京东科技开发者

RL 和 Memory 驱动的 Personal Agent,实测 Macaron AI

阿里巴巴云原生

阿里云 AI 云原生

HTTP/2推送之难,远超想象_Google_Jake Archibald_InfoQ精选文章