写点什么

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

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

    阅读完需:约 36 分钟

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

在讨论页面加载性能问题时,我经常听到有人说“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:164142
用户头像

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

关注

评论

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

OmniOutliner 5 Pro for Mac激活版下载

iMac小白

「支持M1/M2」DBeaverUltimate数据库管理软件下载

iMac小白

最新demo版 | 如何0-1开发支付宝小程序之小程序页面功能介绍(三)

盐焗代码虾

支付宝小程序 支付宝 小程序开发

[WPF]动手写一个简单的消息对话框

不在线第一只蜗牛

WPF 造轮子 消息

爱莫科技国际前沿 AI 技术与应用闭门研讨会即将启幕

科技热闻

《实现领域驱动设计》笔记——上下文映射图

快乐非自愿限量之名

架构 框架 领域驱动

Adobe Premiere Pro Mac 2023中文破解版

iMac小白

每天5分钟复习OpenStack(十)Ceph 架构

快乐非自愿限量之名

云计算 架构 Ceph

如何让你的网络推广实现最大性价比

九凌网络

软件开发王者搭配:80%低代码+20%高代码

互联网工科生

软件开发 低代码 JNPF 高代码

直播预告丨大模型+Agents疏通京东金融运营堵点

京东科技开发者

人工智能 AI 大模型

以阿里云全球故障为例,聊聊如何保障 Auth 服务的 SLA

Authing

阿里云 身份认证 事件驱动 Idaas Authing

开发电竞游戏直播平台,选择成品系统源码更明智

软件开发-梦幻运营部

HDD城市站九城联动,超1500位HarmonyOS开发者积极参与

最新动态

程序员进阶高管指南,看懂工资最少加5k

伤感汤姆布利柏

程序员 面试 前端 升职加薪

外贸推广方式有哪些

九凌网络

软件测试/人工智能|使用ChatGPT帮我们查找bug

霍格沃兹测试开发学社

Rola详解国外住宅IP代理选择的8个方法,稳定的海外IP哪个靠谱?

Geek_bf375d

爬虫 代理IP 免费代理ip 跨境电商 IP 路由

Disk Drill for Mac 完美激活版下载

iMac小白

PPT如何制作思维导图?这2个工具轻松制作思维导图!

彭宏豪95

思维导图 PPT 在线白板 办公软件 绘图软件

App 测试工具大全,收藏这篇就够了

优测云服务平台

OpenAI 曾收到 AI 重大突破警告;半独立的 OpenAI 比与微软合并更好丨 RTE 开发者日报 Vol.91

声网

企业网站建设怎么做?

九凌网络

软件测试/人工智能|如何使用ChatGPT帮我们写自动化测试脚本

霍格沃兹测试开发学社

软件测试/人工智能|如何使用ChatGPT编写符合PO模式的数据驱动测试框架

霍格沃兹测试开发学社

Nevercenter CameraBag Photo for Mac(照片滤镜软件) 2024.0.1永久激活版

mac

苹果mac Windows软件 照片滤镜软件 Nevercenter

item_search_coupon-优惠券查询API接口提供了哪些功能?

技术冰糖葫芦

API 文档

一文详解Vue生命周期

EquatorCoco

Vue 生命周期

WorkPlus实现完全私有化部署,企业数据安全有保障

WorkPlus

100天,3个版本,他们让营销AIGC起来了

脑极体

AI

微信多开助手WechatTweak mac中文集成版下载

iMac小白

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