私はnode.jsを使用し、小さなプロジェクトで表現します。私は、ブローのようなレスポンスヘッダを設定します。ノードエクスプレスコンテンツ長
res.set({'Content-Type':'text/plain;charset=utf-8',
'Content-Length': Buffer.byteLength(data, 'utf-8')});
私はconsole.log
印刷データの長さを使用することができます317
である。しかし、ブラウザのコンソールで、私はこれらを取得する:
接続:キープアライブ
コンテンツエンコーディング:gzip
コンテンツタイプ:text/plain; charset = utf-8
日付:土曜日、01 Jun 2013 08:21:59 GMT
転送 - エンコード:
はヴァリチャンク:
X-パワード・バイ・エンコードを受け入れ:だからエクスプレス
、なぜコンテンツ長が消えましたか?
はコメントしてください:
は、これらの質問を参照してください? –
申し訳ありませんが、私は誰がこのdownvoteをしたのか分かりませんが、あなたは正しいです。どうもありがとうございました。コメント 'app.use(express.compress());'の後、content-lengthが表示されます。しかし、gzipとcontent-lengthの両方を使用できますか? –
@DMDGeeker、原則として、あなたは 'Transfer-Encoding:gzip'と' Content-Length'を一緒に使うことができます。しかし、 'express.compress'ミドルウェアではありません。それだけではそれをサポートしていません。原則として、レスポンスの長さを知ることができれば、Content-Lengthヘッダーを送信することをお勧めします。コンテンツを自分で圧縮したり、さまざまな "圧縮"ミドルウェアを探すことができます。しかし、 'Content-Length'は送信された実際の内容を反映しなければなりません。最終的な(おそらく圧縮された)ボディのバイト長を反映しなければなりません。 –