将 gzip 添加到 spring 嵌入式 tomcat
Adding gzip to spring embedded tomcat
我正在尝试将 gzip 压缩添加到我的服务器(读取和写入)我已经尝试过(spring 启动):
server.tomcat.compression=on
server.tomcat.compressableMimeTypes=application/json,application/xml,text/html,text/xml,text/plain
但是当我的客户发送时:
GZIPOutputStream gzip = new GZIPOutputStream(baos);
gzip.write(content.getBytes(Charset.forName("UTF8")));
gzip.close();
与 headers :
Accept-Encoding" - "gzip"
"Content-Encoding" - "gzip"
数据到达服务时仍处于压缩状态。
我错过了什么?
确保您的客户端发送正确的 Content-Encoding
header,否则 Tomcat 将不知道需要解压缩。参见 this answer for details。
我最终使用了现有的过滤器:
<dependency>
<groupId>net.sourceforge.pjl-comp-filter</groupId>
<artifactId>pjl-comp-filter</artifactId>
<version>1.7</version>
</dependency>
并为其添加了一个 bean (new CompressingFilter())
如果有人遇到同样的问题或知道为什么它不能与 spring 启动配置一起工作,我很想知道。
我正在尝试将 gzip 压缩添加到我的服务器(读取和写入)我已经尝试过(spring 启动):
server.tomcat.compression=on
server.tomcat.compressableMimeTypes=application/json,application/xml,text/html,text/xml,text/plain
但是当我的客户发送时:
GZIPOutputStream gzip = new GZIPOutputStream(baos);
gzip.write(content.getBytes(Charset.forName("UTF8")));
gzip.close();
与 headers :
Accept-Encoding" - "gzip"
"Content-Encoding" - "gzip"
数据到达服务时仍处于压缩状态。 我错过了什么?
确保您的客户端发送正确的 Content-Encoding
header,否则 Tomcat 将不知道需要解压缩。参见 this answer for details。
我最终使用了现有的过滤器:
<dependency>
<groupId>net.sourceforge.pjl-comp-filter</groupId>
<artifactId>pjl-comp-filter</artifactId>
<version>1.7</version>
</dependency>
并为其添加了一个 bean (new CompressingFilter())
如果有人遇到同样的问题或知道为什么它不能与 spring 启动配置一起工作,我很想知道。