为了减小我的json文件的大小,我想压缩它。因此,我正在尝试压缩从php服务器发送的json数据文件:
header('Content-Encoding: gzip');
$output = gzencode(json_encode($data));
echo $output;
然后,在javascript中解压缩它(ajax方法):
$.ajax({
url: url,
type: "GET",
headers : {'Accept-Encoding': 'gzip '},
async: true,
success: function (data) {
console.log("sucess !!");
console.log(data);
...
)};
我还修改了apache服务器,以便自动解压缩:
LoadModule deflate_module modules/mod_deflate.so
和:
<IfModule mod_headers.c>
<FilesMatch ".(js|css|xml|gz|txt|json)$">
Header append Vary: Accept-Encoding
</FilesMatch>
但是,我无法正确获取数据(它仍然是压缩的)。
你能告诉我我哪里做错了吗?
谢谢
发布于 2019-02-11 22:14:19
要将gzip用于API,不需要在应用程序级别实现它(在PHP中压缩数据,在JS中解压缩数据)。在这种情况下,数据应该由web服务器(Apache)压缩,并由客户端(浏览器)解压缩。这个过程是透明的,独立于PHP或JS代码。
确保将web服务器配置为对API端点使用压缩。要对其进行测试,请运行curl -I -H 'Accept-Encoding: gzip,deflate' https://your.domain/api/endpoint/name
或在浏览器devtools (在Network选项卡下)中检查请求。
如果响应中有content-encoding: gzip
头,这意味着服务器使用gzip进行压缩。
https://stackoverflow.com/questions/54631846
复制相似问题