写点什么

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:164428
用户头像

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

关注

评论

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

CAD裁剪块方法

极客天地

如何利用科学的预算管理为企业释放更多价值

智达方通

数字化转型 全面预算管理 财务管理 财务规划

什么时候您需要升级SD-WAN解决方案?11个预警提示!

Ogcloud

SD-WAN组网 SD-WAN厂商 sd-wan专线 SD-WAN厂家

Centos系统云主机中nvme盘不可用解决方法

天翼云开发者社区

云主机

模型即产品?从应用角度看AI产品发展趋势

秃头小帅oi

TUSD运营商亏空近5亿美元,FDUSD发行方是罪魁祸首?

TechubNews

去中心化 孙宇晨 FDUSD

全彩LED大屏幕亮度过高的影响以及如何调整?

Dylan

行业 LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

【解决方案】多租户技术架构设计入门(一)

量贩潮汐·WholesaleTide

架构 多租户

BOE(京东方)打造东北首个沉浸式数字艺术体验空间 科技解码文明释放数字文旅想象力

爱极客侠

DialogHub上线OpenHarmony开源社区,高效开发鸿蒙应用弹窗

HarmonyOS开发者

10倍降本、10倍无损弹性!Kafka Serverless 基础版与专业版重磅发布!

阿里巴巴云原生

kafka 阿里云 云原生

BeeWorks内网im即时通讯,安全的企业内部沟通工具

BeeWorks

IM 即时通讯IM 私有化部署 局域网视频软件

【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(3)

HarmonyOS SDK

harmoyos

Apache Doris 2.1.9 版本正式发布

SelectDB

数据库 大数据 数据仓库 倒排索引 湖仓一体

东京 Voice AI Agent 工作坊!1 小时让你的 AI 能听能说

声网

故障定位系列-1-Web应用接口级故障如何定位

乘云数字DataBuff

运维 故障定位 智能运维 运维监控

CAD动态块编辑设置参数显示颜色方法

极客天地

线性判别分析(LDA):降维与分类的完美结合

不在线第一只蜗牛

机器学习

量子计算与人工智能的结合:未来科技的双重革命

天津汇柏科技有限公司

人工智能 量子计算

AI 网关代理 LLMs 最佳实践

阿里巴巴云原生

阿里云 云原生 云原生AI网关

函数计算支持热门 MCP Server 一键部署

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

Techub 财报解读:Circle 冲刺 IPO,但收入增长难掩利润困局

TechubNews

蚂蚁清华联合发布 AReaL-boba,代码数据全开源,助力社区轻松复现 SOTA 推理模型

蚂蚁开源

开源 强化学习 蚂蚁

CAD编辑图块属性对话框不见了

极客天地

Kyutai 推出 Moshi 语音模型微调工具包;语音智能体平台 Vapi 2.0 上线,已提供 4400 万通电话服务丨日报

声网

淘宝商品详情API+拍立淘实战:如何用技术重新定义"找货"?

代码忍者

淘宝API接口

首批!天翼云息壤智算一体机顺利通过信通院三项测试!

天翼云开发者社区

人工智能 云计算 智算一体机

SD-WAN能为医疗信息化升级提供哪些帮助?

Ogcloud

SD-WAN SD-WAN组网 SD-WAN厂商 sd-wan专线 SD-WAN厂家

Excel百万数据如何快速导入?

不在线第一只蜗牛

Excel

小猫在流浪:城市灯火下的无声挽歌

花十君

产品 流浪猫 关爱流浪动物

【解决方案】多租户技术架构设计入门(二)

量贩潮汐·WholesaleTide

数据库 多租户

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