假设我在内存中有 2 个单独压缩的 html 块。我可以将 chunk1+chunk2 发送到 HTTP 客户端吗?有没有浏览器支持这个?或者没有办法做到这一点,我必须 gzip 整个流而不是单个块?
我想为客户提供服务,例如 chunk1+chunk2 和 chunk2+chunk1 等(不同的顺序),但我不想每次都压缩整个页面,也不想缓存整个页面。我想使用预压缩的缓存块并发送它们。
nodejs代码(节点v0.10.7):
// creating pre cached data buffers
var zlib = require('zlib');
var chunk1, chunk2;
zlib.gzip(new Buffer('test1'), function(err, data){
chunk1 = data;
});
zlib.gzip(new Buffer('test2'), function(err, data){
chunk2 = data;
});
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain', 'Content-Encoding': 'gzip'});
// writing two pre gziped buffers
res.write(chunk1); // if I send only this one everything is OK
res.write(chunk2); // if I send two chunks Chrome trying to download file
res.end();
}).listen(8080);
当我的示例服务器返回这种响应时 Chrome 浏览器显示下载窗口(它不理解它:/