首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造压缩响应以利用本机解压

构造压缩响应以利用本机解压
EN

Stack Overflow用户
提问于 2022-05-25 10:43:23
回答 1查看 218关注 0票数 3

我的应用程序捆绑了一些brotli压缩资产,我希望使用浏览器本身来解压缩它们,而不是提供解压缩库。我能想到的欺骗浏览器这样做的最好方法是模拟压缩响应,不幸的是,它无法工作:

代码语言:javascript
复制
// Here's a brotli-compressed JSON
const compressedBytes = new Uint8Array([161,232,7,128,225,60,176,219,56,82,174,50,55,131,242,211,168,22,217,235,218,154,50,66,77,182,205,166,93,90,37,27,71,177,131,132,178,39,139,111,22,157,174,62,78,57,215,150,98,130,73,70,223,18,63,30,0,14,14,57,104,135,68,162,247,46,194,120,39,9,132,46,144,108,191,147,200,106,67,47,244,253,195,243,78,156,106,123,173,29,132,142,15,209,17,230,72,114,152,70,211,188,205,84,49,205,172,101,245,67,59,130,0,116,246,124,222,250,15]);
const headers = new Headers();
headers.append( 'Content-Encoding', 'br' );
headers.append( 'Content-Type', 'application/json' );
const r = new Response( compressedBytes.buffer, { status: 200, statusText: 'OK', headers } );
await r.arrayBuffer(); // Unfortunately just outputs a provided buffer w/o decompressing it

我试图把一个请求放到缓存中,克隆它,但是似乎没有什么效果。也许有人知道实现本机解压缩的方法?DecompressionStream API在某种程度上是相关的,但它不支持brotli,并且存在兼容性问题。

EN

回答 1

Stack Overflow用户

发布于 2022-05-31 13:21:08

根据本期的说法,浏览器中包含的brotli解码器似乎没有向JS公开,解码brotli的首选方法是使用库(如brotli.js)。

当前版本的DecompressionStream API不相关,因为:

在API的第一个版本中,不支持"gzip“和"deflate”以外的压缩格式。

(来源)

一个支持布罗迪的问题已经开始了。,但我想你得再等一会儿^^

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72376146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档