2011-01-03 22 views
1

私は現在、プロキシサーバー上で作業しています。この場合、我々はそれを押す(regexpを使って)データを変更する必要があります。gzip圧縮を扱うNode.jsプロキシ

ほとんどの場合、コンテンツエンコーディングとしてgzipを使用しているWebサイトを除いて正常に動作します(私は思います)。圧縮と呼ばれるモジュールを見つけ、圧縮解除/ガンジーストリームを通して受け取ったチャンクをプッシュしようとしました。私が期待していたように、それは本当にうまくいきません。

私は正しい方向に向いているのだろうか、人生を楽にするモジュールがあれば(gzip圧縮に関して)、私は不思議に思っていました。

Greetz、

ベンジャミン

+0

「期待どおりに進まない」とはどういう意味ですか? gzip(または任意の種類のロスレス圧縮)では、通常は動作するか動作しないので、無駄な駄目になります。そのような場合は、おそらくエンコードの問題です。あなたは 'utf8'ストリームを解凍モジュールに送ることはできませんし、解凍モジュールが完全に解凍すると期待します。ストリームは、そのネイティブの 'Buffer'フォーマットのままでなければなりません。 – MooGoo

答えて

0

が見てください:Node.js: Gzip compression?

あり、ノード圧縮を使用する代わりはあるが、この解決策にも言及されています。

乾杯、

-stan

5

あなたのプロキシがテキストをフィルタリングまたは変更するためのものだと思う場合は、gzipの圧縮と解凍について冗長に感じます。

もう1つの解決方法は簡単です。
http要求ヘッダーを変更します。その後、サーバーから平文を得ることができます。

http要求ヘッダーから「Accept-Encoding」を削除します。

+2

req.headers ['accept-encoding'] = '*; q = 1、gzip = 0'; // uncompresedを強制する – user956584