簡體   English   中英

Spring引導http響應壓縮對某些User-Agents不起作用

[英]Spring boot http response compression doesn't work for some User-Agents

我正在嘗試在Spring啟動Web應用程序上啟用http響應壓縮。 它適用於某些用戶代理,並且由於某些原因不適用於其他用戶代理(下面的特定情況)。

我的基本問題是: 為什么Spring Boot中的http響應壓縮(gzip)僅適用於某些User-Agent標頭及其配置位置。

Spring引用引用沒有說明任何事情。

我准備了啟用壓縮的簡單Web應用程序: 示例spring-boot-compression app有一些集成測試可以驗證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 1.4

 server.compression.enabled: true
server.compression.mime-types: application/json,application/xml,text/html,text/xml,text/plain,text/css,application/javascript

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM