了解 JavaScript 和作为页面资源中不透明响应的局限性
作为 Fetch API 的一部分,不透明响应表示请求的结果在未启用跨源资源共享 (CORS) 的情况下对远程源进行的操作。虽然不透明响应提供了一定程度的安全性,但它们也带来了限制和潜在问题。
访问标头和正文
不透明响应的一个关键限制是受限访问其标题和正文内容。与提供对标头和 Body 接口等属性的访问的常规响应不同,不透明响应是故意的黑盒实体。这意味着开发人员无法检索内容类型或状态代码等信息。
用作页面资源
尽管存在局限性,但不透明响应可以在特定情况下用作页面资源状况。它们是脚本标记、样式表、各种媒体元素和对象等元素的有效选项。但是,它们不支持字体等资源。通过参考相关规范,开发者可以确定特定资源类型的不透明响应的资格。
缓存存储 API 和不透明响应
使用缓存存储 API 时,不透明的响应会出现一个微妙的警告。由于无论请求结果如何,它们的状态代码始终默认为 0,因此不透明响应很容易被 API 的 add() 和 addAll() 方法拒绝。当响应的状态代码超出 2XX 范围时,会发生此拒绝。为了规避此问题,开发人员可以显式获取不透明响应并使用 put() 方法手动将其放入缓存中。但是,重要的是要意识到与缓存可能因服务器错误而导致的不透明响应相关的潜在风险。
存储配额和 navigator.storage API
至为了防止跨域信息泄漏,浏览器在计算存储配额限制并通过 navigator.storage API 报告使用情况时,会在不透明响应的大小中添加大量填充。在 Google Chrome 中,每个缓存的不透明响应至少为报告的存储使用量贡献约 7 MB 的空间。在确定对缓存的不透明响应的数量时,必须考虑这一点,以避免过早超出存储配额限制。
以上是在 JavaScript 中使用不透明响应并作为页面资源的主要限制和影响是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!