【问题标题】:Is it possible to gzip file on server-side and ungzip it in the browser transparently?是否可以在服务器端 gzip 文件并在浏览器中透明地解压缩它?
【发布时间】:2017-03-29 13:56:55
【问题描述】:

我的 Web 应用程序将 JSON 文件发送到客户端。这些文件可能比较大。

我可以在服务器端压缩它们并在客户端透明地接收未压缩的吗?

例如,如果我写

$.getJSON( "ajax/test.json", function( data ) {
...
});

我可以将ajax/test.json gzip 压缩并将内容编码设置为 gzip 吗?

【问题讨论】:

  • 是的。通常,这是您的网络服务器的配置项,您无需以编程方式执行任何操作或更改文件。
  • 那么,如果我只是将 stati JSON 放在服务器(比如 AWS)上,它很可能会被压缩?
  • 也许,取决于您如何设置服务器。通过查看浏览器开发工具中的网络选项卡来检查很简单。

标签: javascript http gzip content-encoding


【解决方案1】:

您尚未指定有关服务器端设置的任何信息。

如果您正在动态生成 json,那么您应该检查浏览器发送的请求是否包含 Accept-Encoding: gzip 标头。 如果是,则在响应中添加标头Content-Encoding: gzip,并发送gzip压缩数据。

如果 json 文件是静态的,您应该在您的网络服务器配置中将 application/json mime 类型配置为可压缩,或者更好的是,预压缩它,将 file.json 和 file.json.gz 存储在您的网络服务器上,然后配置条件重写和标头,因此压缩文件仅提供给支持压缩的客户端。 搜索/询问 ServerFault 如何在您的网络服务器上执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多