Web Bundles 学习笔记

Web Bundles
Chrome 开发者工具新功能

将完整的网站捆绑为单个文件并使其可共享为网络开辟了新的用例。 想象一个你可以:

  • 创建自己的内容并以各种方式分发,不受网络限制
  • 通过蓝牙或 Wi-Fi Direct 与您的朋友分享网络应用程序或网络内容
  • 在您自己的 USB 上携带您的网站,甚至将其托管在您自己的本地网络上

Web Bundles API 是一项前沿提案,可让您完成所有这些工作。

Web Bundles API 目前仅在基于 Chromium 的浏览器中受实验性标志支持。

Web Bundle 是一种文件格式,用于将一个或多个 HTTP 资源封装在单个文件中。 它可以包含一个或多个 HTML 文件、JavaScript 文件、图像或样式表。

Web Bundles,更正式地称为 Bundled HTTP Exchanges,是 Web Packaging 提案的一部分。

Web Bundles 学习笔记

Web Bundle 中的 HTTP 资源由请求 URL 编制索引,并且可以选择带有保证资源的签名。 签名允许浏览器理解和验证每个资源的来源,并将每个资源视为来自其真实来源。 这类似于 Signed HTTP Exchanges(一种用于对单个 HTTP 资源进行签名的功能)的处理方式。

Explaining Web Bundles

准确地说,Web Bundle 是一个扩展名为 .wbn 的 CBOR 文件(按照惯例),它将 HTTP 资源打包成二进制格式,并以 application/webbundle MIME 类型提供服务。您可以在规范草案的*结构部分阅读更多相关信息。

Web Bundles 有多个独特的功能:

  • 封装多个页面,将一个完整的网站打包成一个文件
  • 启用可执行的 JavaScript,与 MHTML 不同
  • 使用 HTTP 变体进行内容协商,即使捆绑包离线使用,也可以使用 Accept-Language 标头进行国际化
  • 当由其发布者加密签名时,在其来源的上下文中加载
  • 在本地服务时几乎立即加载

这些功能开启了多个场景。一种常见的方案是能够构建一个独立的 Web 应用程序,该应用程序无需 Internet 连接即可轻松共享和使用。例如,假设您和朋友乘坐从东京飞往旧金山的飞机。你不喜欢机上娱乐。您的朋友正在玩一款名为 PROXX 的有趣网络游戏,并告诉您他们在登机前将游戏下载为 Web Bundle。它可以完美地离线工作。在 Web Bundles 之前,故事将就此结束,您要么必须轮流在朋友的设备上玩游戏,要么寻找其他东西来打发时间。但是使用 Web Bundles,您现在可以执行以下操作:

  • 请您的朋友分享游戏的 .wbn 文件。例如,可以使用文件共享应用程序轻松地对等共享文件。
  • 在支持 Web Bundle 的浏览器中打开 .wbn 文件。
  • 开始在您自己的设备上玩游戏并尝试击败您朋友的高分。

可以在 Chrome 开发者工具中打开对 Web Bundles 请求的预览功能。

访问 chrome://flags, 访问标签 #enable-experimental-web-platform-feature,启用该项功能:

Web Bundles 学习笔记

enable-experimental-web-platform-features

更多Jerry的原创文章,尽在:"汪子熙":
Web Bundles 学习笔记

上一篇:ASP.NET MVC中使用Bundle打包压缩js和css的方法


下一篇:BundleConfig的作用