2

使用 tomcat 的数据压缩功能,我看到数据(json 结果)被压缩,但是从服务器到客户端获取数据所花费的时间并没有改善。

客户:borwser

服务器 - 嵌入式 tomcat。

带有 REST api 的 Spring MVC 框架用于服务所有客户端请求。Jackson 用于将 java 对象转换为 json 格式。

例如:- 没有压缩功能 json 结果大小 =18 MB,从服务器到客户端获取数据的时间是 14 秒

不使用压缩时的 Chrom 开发人员工具信息->

请求标头view source

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Authorization:Basic dWlhZG1pbjpyZWRzZWFs
Connection:keep-alive
Host:localhost:8443
Referer:https://localhost:8443/apps.jsp

响应标头

Content-Type:application/json;charset=UTF-8
Date:Wed, 25 Sep 2013 10:40:59 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked

具有压缩功能: json 结果大小 =433 KB,但从服务器到客户端获取数据的时间仍然在 14 秒左右

启用压缩时的 Chrom 开发人员工具信息 ->

Request Method:GET
Status Code:200 OK

请求标头

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Authorization:Basic dWlhZG1pbjpyZWRzZWFs
Connection:keep-alive
Host:localhost:8443
Referer:https://localhost:8443/apps.jsp
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36
X-Requested-With:XMLHttpRequest

响应标头

Content-Encoding:gzip
Content-Type:application/json;charset=UTF-8
Date:Wed, 25 Sep 2013 10:16:02 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked
Vary:Accept-Encoding

用于配置的嵌入式 Tomcat 代码:

httpsConnector.setAttribute("compression","on");
 httpsConnector.setAttribute("compressionMinSize","2048");
 httpsConnector.setAttribute("noCompressionUserAgents","gozilla, traviata");
 httpsConnector.setAttribute("compressableMimeType","application/json,text/html,text/xml,text/plain,text/javascript,text/css");

“传输编码”在响应标头中具有“分块”的值,这对我的问题有什么影响。我无法弄清楚为什么压缩数据时获取数据的时间没有得到改善。如果我缺少某些配置,请告诉我。

4

0 回答 0