3

那么,connect的gzippo好用吗?

我有两个问题,

1)如果我想提供静态javascript(我使用express),我可以做gzippo并这样做:

app.use(gzippo.staticGzip(__dirname + '/public'));

是对的吗?如果客户端浏览器不支持 gzip(在极少数情况下)怎么办?它会自动发送解压缩版本吗?另外,压缩文件会缓存吗?或压缩每个请求?

2)如果应用程序的get方法返回JSON,处理压缩结果的正确方法是什么?我是否应该首先检查 http.request 标头的“接受编码”并确保它支持 gzip,然后压缩 JSON 结果?还是 gzippo 会自动处理它?


还有一个问题:3)如果我在公共文件夹中有一个未压缩的 JS 文件(例如 my.js)和一个手动 gzip 压缩的 JS 文件(例如 my.js.gzip),如果客户端脚本包括

我必须指定为吗?

这个问题不仅在 node.js 上,而且在普通的 apache 服务器上也是如此。:) 谢谢。

4

2 回答 2

3

如果客户端浏览器不支持 gzip(在极少数情况下)怎么办?它会自动发送解压缩版本吗?

根据这条线:

https://github.com/tomgallacher/gzippo/blob/master/lib/staticGzip.js#L121

if (!~acceptEncoding.indexOf('gzip')) {
            return pass(filename);
        }

它将发送未压缩的文件。

另外,压缩文件会缓存吗?或压缩每个请求?

//This is storing in memory for the moment, need to think what the best way to do this.

我在评论中读到了这个,所以我假设它现在将 gzipped 文件存储在内存中。但更重要的是,它还使用客户端缓存。

如果应用的 get 方法返回 JSON,那么处理压缩结果的正确方法是什么?我是否应该首先检查 http.request 标头的“接受编码”并确保它支持 gzip,然后压缩 JSON 结果?还是 gzippo 会自动处理它?

我认为你的立场是正确的。我不相信 Gzippo 会处理其他路线,但只会处理静态文件夹。


其他一些提示:

于 2011-06-26T11:15:22.133 回答
0

考虑使用一些云 API 中间件,如 AWS APIGateway,一些支持 GZipping 的 CDN,您始终可以使用 nginx 或 HAproxy 制作自己的反向代理服务器。请参阅此处的项目符号 3:http: //goldbergyoni.com/checklist-best-practice-of-node-js-in-production/

于 2017-07-06T19:46:50.440 回答