Spring Boot http响应压缩不适用于某些User-Agent

我正在尝试在Spring Boot Web应用程序上启用http响应压缩。它适用于某些用户代理,并且由于某些原因不适用于其他用户代理(下面的特定情况)。

我的基本问题是:

Spring Boot参考没有说什么。

我准备了具有启用压缩功能的简单Web应用程序:spring-boot-

compression应用程序示例

集成测试可以验证gzip编码仅在某些情况下有效。

我用以下命令配置了弹簧靴:

server:

tomcat:

compression: on

compressable-mime-types: text/html,text/css,application/javascript,application/json,application/font-sfnt,application/font-woff,application/font-woff2

当我尝试对curl发出一些请求时:

$ curl -i -H "Accept-Encoding: gzip,deflate" http://localhost:8080

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Content-Type: application/json;charset=UTF-8

Transfer-Encoding: chunked

Content-Encoding: gzip

Vary: Accept-Encoding

我看到Content-Encoding: gzip已设置标题。

当我设置User-Agent为AppleWebKit(或其他类似IE的浏览器)时,它不会压缩:

$ curl -i -H "Accept-Encoding: gzip,deflate" -H "User-Agent: AppleWebKit" http://localhost:8080

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Content-Type: application/json;charset=UTF-8

Transfer-Encoding: chunked

Vary: Accept-Encoding

我用其他一些浏览器和User-Agent标题修改重复了测试,并收到了一些奇怪的结果。

这里是一些有效的(响应被压缩的)User-Agent头文件:

- Mozilla/5.0

- Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/46.0.2490.80 Safari/537.36

- Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Firefox/34.0

- SomeUnknownBrowser

一些 工作的User-Agent标题:

 - AppleWebKit

- Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36

- Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0

- Gecko/20100101

我还尝试过与一起使用压缩,GzipFilter并且其行为完全相同。还尝试了嵌入式Jetty而不是Tomcat-相同的结果。

也许我只是想念一些东西。

回答:

您可能正在使用某种防病毒软件(也许是ESET)。尝试关闭HTTP保护。

使用Eset,您可以尝试以下操作:高级-> Internet和电子邮件-> Web访问保护-关闭。

以上是 Spring Boot http响应压缩不适用于某些User-Agent 的全部内容, 来源链接: utcz.com/qa/414252.html

回到顶部