Node.js代理,处理gzip压缩

3
我目前正在开发一个代理服务器,我们需要修改通过它传递的数据(使用正则表达式)。在大多数情况下,它都能正常工作,除了那些使用gzip作为内容编码的网站(我认为),我尝试使用一个名为compress的模块,并试图将接收到的分块通过解压缩/gunzip流推送,但结果并不如我所预期的那样。我想知道我是否朝着正确的方向前进,是否有更多的模块可以让我的生活更轻松(关于gzip压缩)。问候,Benjamin

你说的“不如预期”是什么意思?使用gzip(或任何无损压缩)通常要么成功,要么失败,最终得到的是无用的乱码。如果是这种情况,很可能是编码问题。你不能将一个utf8流发送给解压模块,并期望它能够干净地解压缩。流必须保持在其原生的Buffer格式中。 - MooGoo
3个回答

8

如果您认为代理只用于过滤或修改文本,那么您对gzip压缩和解压缩感到啰嗦。

另一个解决方案很简单。
修改http请求头。然后您可以从服务器获取纯文本。

从http请求头中删除“Accept-Encoding”。


4
req.headers['accept-encoding'] = '*;q=1,gzip=0'; // 强制不压缩 - user956584

3

0

看一下这里:Node.js: Gzip压缩?

有一个替代方案可以使用node-compress,但也提到了这个解决方案。

祝好,

-stan


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接