Java 使用Wildfly对http响应进行Gzip编码
若请求包含可接受的编码:gzip头,您知道是否可以将在wildfly 10上运行的应用程序的响应编码为gzip格式吗?我希望仅通过Wildfly配置和响应来完成更改,以便在标头中包含响应具有gzip编码(内容编码:gzip)的一些指示Java 使用Wildfly对http响应进行Gzip编码,java,configuration,gzip,wildfly,Java,Configuration,Gzip,Wildfly,若请求包含可接受的编码:gzip头,您知道是否可以将在wildfly 10上运行的应用程序的响应编码为gzip格式吗?我希望仅通过Wildfly配置和响应来完成更改,以便在标头中包含响应具有gzip编码(内容编码:gzip)的一些指示 我已经读到,由于wildfly 8可以使用gzip筛选器进行这种编码,所以我尝试将筛选器添加到wildfly配置中,类似于这里描述的:但是,没有成功。我尝试了许多实践,比如equals[%{I,Accepted Encoding},\'gzip\'](我在下面的单
我已经读到,由于wildfly 8可以使用gzip筛选器进行这种编码,所以我尝试将筛选器添加到wildfly配置中,类似于这里描述的:但是,没有成功。我尝试了许多实践,比如
equals[%{I,Accepted Encoding},\'gzip\']
(我在下面的单元测试中发现了类似的例子)或者regex[pattern='(?:gzip)(;.*)”,value=%{o,Accept Encoding},full match=false]
。遗憾的是,我的解决方案都不起作用。这个或其变体实际上应该起作用(使用Wfly10,并且已经这样做了很长时间):
您需要定义然后引用/配置过滤器,在您的情况下,至少是gzip过滤器 这一点或其变化事实上应该起作用(使用Wfly10并且已经这样做了很长时间):
您需要定义然后引用/配置过滤器,在您的情况下,至少是gzip过滤器 带模式的过滤器已工作。如果您的图案有特殊字符,如。你需要逃离他们。
请注意,我没有找到任何关于value=中的“I”和“o”值是什么的文档。如果给定“o”,则在应用程序(响应)的输出中搜索模式标题,如果给定“i”,则匹配输入消息(请求)。使用模式进行过滤
。如果您的图案有特殊字符,如。你需要逃离他们。
请注意,我没有找到任何关于value=中的“I”和“o”值是什么的文档。若给定“o”,则模式搜索来自应用程序(响应)的输出中的标题,若给定“i”,则匹配输入消息(请求)
<subsystem xmlns="urn:jboss:domain:undertow:1.2">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http" max-post-size="4194304000" max-parameters="10000"/>
<https-listener name="https" socket-binding="https" security-realm="WebRealm" enabled-cipher-suites="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_SHA256,TLS_ECDHE_RSA_WITH_AES_128_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_SHA,TLS_ECDHE_RSA_WITH_AES_256_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_SHA384,TLS_ECDHE_RSA_WITH_AES_256_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_128_SHA,TLS_DHE_DSS_WITH_AES_128_SHA256,TLS_DHE_RSA_WITH_AES_256_SHA256,TLS_DHE_DSS_WITH_AES_256_SHA,TLS_DHE_RSA_WITH_AES_256_SHA" enabled-protocols="TLSv1,TLSv1.1,TLSv1.2" max-post-size="4194304000" max-parameters="10000" record-request-start-time="true"/>
<host name="default-host" alias="localhost">
<access-log pattern="%h %{i,X-Forwarded-For} %t %r %s %BByte %Dms "%{i,User-Agent}" %I" prefix="access"/>
<filter-ref name="gzipFilter" predicate="exists['%{o,Content-Type}'] and regex[pattern='(?:application/javascript|text/css|text/html|text/xml|application/json)(;.*)?', value=%{o,Content-Type}, full-match=true]"/>
<filter-ref name="X-Content-Type-Options"/>
<filter-ref name="Vary-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config x-powered-by="false"/>
<websockets/>
</servlet-container>
<filters>
<response-header name="Vary-header" header-name="Vary" header-value="Accept-Encoding"/>
<response-header name="X-Content-Type-Options" header-name="X-Content-Type-Options" header-value="nosniff"/>
<gzip name="gzipFilter"/>
</filters>
</subsystem>