为什么nodejs将zlib更改标题“content-encoding gzip”表示为“transfer-encoding chunked”

时间:2018-03-19 05:44:37

标签: node.js express zlib chunked transfer-encoding

当我尝试使用zlib压缩响应时,node表示更改标题。

代码:

    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响应:

截图:

有人知道为什么这样做吗?

0 个答案:

没有答案