写点什么

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

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

关注

评论

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

Magnet for Mac中文版 苹果电脑窗口管理软件

Rose

融云斩获两项行业大奖,技术团队和出海服务接连获赞

融云 RongCloud

主机管理软件WGCLOUD介绍 - 部署在公网运行时配置建议增强安全性

王逅逅

服务器安全 zabbix Prometheus #运维 Linux 运维

大数据与AI:从分析到预测的跃迁

天津汇柏科技有限公司

大数据‘’ AI 人工智能

利用item_get API:深入探索淘宝商品详情的获取

代码忍者

淘宝API接口 tb商品详情数据接口

独家丨原阿里达摩院、「木蚁机器人」CTO张硕切入具身智能赛道,做机器人大脑

机器人头条

大模型 人形机器人 具身智能 阿里达摩院

Axure RP 11 for mac中文破解版 及安装教程

Rose

Microsoft Office 2019 免激活最新版-mac/win

Rose

这本秘籍送到心趴上了

CodeBuddy

ARMS 用户体验监控正式发布原生鸿蒙应用 SDK

阿里巴巴云原生

阿里云 云原生 可观测

Redis Desktop Manager for Mac(Redis桌面管理工具) 中文激活版

Rose

微信授权全链路打通指南

不在线第一只蜗牛

微信

专为Mac电脑用户设计的虚拟定位工具 AnyGo for Mac中文破解版

Rose

阿里裁员就靠这166页精品Java面试手册成功逆袭java高级开发岗了

程序员高级码农

Java 编程 程序员 java面试 Java面试题

以技术赋能艺术,华为视频AiMax品鉴会助力国乐在创新中焕发新生

最新动态

Permute 3:一键转换,媒体文件轻松驾驭

Rose

iStat Menus 6中文 for Mac 最强大的macOS系统监控软件

Rose

AI Agent与MEME:技术与文化融合驱动Web3创新

TechubNews

国云官网焕新升级,共创数智未来!

天翼云开发者社区

云计算 天翼云

2024全球人形机器人领域深度洞察和前瞻报告:具身智能技术、人形机器人、大模型、商业化卡点和趋势分析

机器人头条

大模型 人形机器人 具身智能

EndNote 21大客户授权版 Mac(最强文献管理软件) 永久激活版

Rose

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