gpt4 book ai didi

java - Spring boot http 响应压缩不适用于某些用户代理

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:21 25 4
gpt4 key购买 nike

我正在尝试在 Spring Boot Web 应用程序上启用 http 响应压缩。它适用于某些用户代理,但出于某种原因不适用于其他用户代理(具体情况见下文)。

我的基本问题是:为什么 Spring Boot 中的 http 响应压缩 (gzip) 仅适用于某些 User-Agent header 及其配置位置。

Spring boot reference什么也没说。

我准备了启用压缩的简单 Web 应用程序:sample spring-boot-compression app有一些集成测试可以验证 gzip 编码仅适用于某些情况。

我配置了 spring boot:

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 header 已设置。

当我将 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 header 修改重复了我的测试,并收到了一些奇怪的结果。

这里有一些工作(响应被压缩)User-Agent header :

- 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 header :

 - 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 访问保护 - 关闭。

关于java - Spring boot http 响应压缩不适用于某些用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com