Почему nodejs выражают zlib, изменяют заголовок "gzip-кодировки содержимого" на "chunked-кодирование передачи"

Когда я пытаюсь сжать ответ с помощью zlib, nodejs express меняет заголовки.

Код:

    var acceptEncoding = req.headers['accept-encoding'];
    if (!acceptEncoding) { acceptEncoding = ''; }
    if (acceptEncoding.match(/\bdeflate\b/)) {
        zlib.gzip(JSON.stringify(Response), function (err, result) {
            if (!err) {
                //res.writeHead(200, { 'content-encoding': 'gzip' });
                res.header('Content-Length', result.byteLength);
                res.setHeader('transfer-encoding', '');
                res.setHeader('content-encoding', 'deflate');
                res.send(result, 200);
            }
        });
    }
    if (acceptEncoding.match(/\bgzip\b/)) {
        zlib.gzip(JSON.stringify(Response), function (err, result) {
            if (!err) {
                //res.writeHead(200, { 'content-encoding': 'gzip' });
                res.header('Content-Length', result.byteLength);
                res.setHeader('transfer-encoding', '');
                res.setHeader('content-encoding', 'gzip');
                res.send(result, 200);
            }
        });
    }
    else {
        res.send(JSON.stringify(Response), 200);

Chrome response:

Скриншот:

Кто-нибудь знает, зачем это делать??

0 ответов

Другие вопросы по тегам