需要推荐 Node.js Gzip 静态资源

发布于 2024-11-17 13:23:06 字数 554 浏览 2 评论 0原文

那么,connect的gzippo好用吗?

我有两个问题,

1)如果我想提供静态javascript(我使用express),我可以只做gzippo并执行以下操作:

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

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

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


还有一个问题: 将提供哪一个文件

3)如果我在公共文件夹中有一个未压缩的JS文件(例如my.js)和一个手动gzip压缩的JS文件(例如my.js.gzip),如果客户端脚本包含我必须指定 作为 ?

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

so, is connect's gzippo good?

I have two questions,

1) if i want to serve static javascript ( i use express), I can just do gzippo and do that:

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

is that right? what if the client browser doesn't support gzip (in rare case)? will it automatically send the uncompress version? also, will the zipped file cached? or compress for every request?

2) If the app's get method returns JSON, what is the correct method to handle compress result? should I first check the http.request header's "accept-encoding" and make sure it support gzip, then compress the JSON result? or gzippo will automatically handle it?


one more question:
3) If I have a uncompressed JS file (e.g. my.js) and a manually gzipped JS file (e.g. my.js.gzip) in the public folder, which one will be served if client side script include is

do I have to specify as ?

that a question not just on node.js but also on normal apache server. :) thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

嘿哥们儿 2024-11-24 13:23:06

如果客户端浏览器没有怎么办
支持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.

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

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

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


其他一些提示:

what if the client browser doesn't
support gzip (in rare case)? will it
automatically send the uncompress
version?

According to this line:

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

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

It will send uncompressed file.

also, will the zipped file cached? or
compress for every request?

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

I read this in comment so I assume right now it stores gzipped file in memory. But even more important it also uses client side caching.

If the app's get method returns JSON,
what is the correct method to handle
compress result? should I first check
the http.request header's
"accept-encoding" and make sure it
support gzip, then compress the JSON
result? or gzippo will automatically
handle it?

I think you stand correct. I don't believe Gzippo will handle other routes, but only static folder.


Some other tips:

反目相谮 2024-11-24 13:23:06

考虑使用一些云 API 中间件,例如 AWS APIGateway、一些支持 GZipping 的 CDN,并且您始终可以使用 nginx 或 HAproxy 构建自己的反向代理服务器。请参阅此处的第 3 点:
http://goldbergyoni.com/checklist-best-practice -of-node-js-in-生产/

Consider using some cloud API middleware like AWS APIGateway, some CDNs supporting GZipping and you always can craft your own reverse proxy server with nginx or HAproxy. See bullet 3 here:
http://goldbergyoni.com/checklist-best-practice-of-node-js-in-production/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文