我创建了一个小应用程序其余的node.js.我尝试压缩数据json,该数据通过请求api返回,但是没有压缩.使用快速和压缩.
var express = require('express');
var methodOverride = require('method-override');
var bodyParser = require('body-parser');
var serveStatic = require('serve-static');
var compression = require('compression');
var app = express();
app.use(compression());
app.use(methodOverride('X-HTTP-Method-Override'));
app.use(bodyParser.json());
app.use(serveStatic('public', {'index': ['index.html']}));
app.use('/', require('./routes'));
app.use(function(req, res) {
res.sendfile('public/index.html');
});
app.disable('x-powered-by');
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
});
这个没有压缩的响应头=(((
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 3756
ETag: W/"56IqvwOVCBB3MRndvDsFTA=="
Vary: Accept-Encoding
Date: Wed, 10 Jun 2015 14:21:11 GMT
Connection: keep-alive
救命.
解决方法:
您是否使用普通卷发进行请求?告诉curl请求压缩数据:
$curl -H 'Accept-Encoding: gzip,deflate' -v -o tmp http://localhost:3000/
* Connected to localhost (::1) port 3000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.37.1
> Host: localhost:3000
> Accept: */*
> Accept-Encoding: gzip,deflate
>
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< ETag: W/"qIOLMe2deSCB3/8ol7nulg=="
< Vary: Accept-Encoding
< Content-Encoding: gzip # <========================================== !!!
< Date: Wed, 10 Jun 2015 16:14:50 GMT
< Connection: keep-alive
< Transfer-Encoding: chunked
现在下载已压缩.