Tomcat压缩不会在标头中添加内容编码:gzip
我正在使用Tomcat压缩我的HTML内容,如下所示:
然而,在HTTP标头中(通过YSlow观察),我没有看到
Content-Encoding: gzip
导致YSlow评分不佳。
我只看到了
HeadersPost Response Headers Server: Apache-Coyote/1.1 Content-Type: text/html;charset=ISO-8859-1 Content-Language: en-US Content-Length: 5251 Date: Sat, 14 Feb 2009 23:33:51 GMT
我正在运行apache mod_jk Tomcat配置。
如何使用Tomcat压缩HTML内容,并在标题中添加“Content-Encoding:gzip”?
看看http://sourceforge.net/projects/pjl-comp-filter/ 。
其他自定义解决方案可能存在内存泄漏。
此外,如果您使用mod_jk,那么您当然不会为这些请求使用8080连接器(支持压缩)。
Tomcat将进行压缩。 但是因为你使用的是mod_jk
我想你是通过端口80上的Apache而不是端口8080
上的tomcat来获取请求的。 作为实验尝试通过端口8080获取您的页面然后检查yslow
您应该看到正确的标题。
我认为正在发生的事情是apache通过mod_jk
解压缩它从tomcat获取的内容,然后将泄露的内容传递给浏览器。
如果您希望使用mod_jk
则需要在Apache而不是Tomcat上设置压缩。
也许Tomcat所指的压缩不是gzip? 这是在黑暗中刺伤,但它可能与白色空间压缩或线条修剪有关。
我想象Tomcat在这方面会更加明确(这里是希望)。
我们在我们的应用程序中运行了duffmo提到的gzipfilter,web.xml看起来像这样:
App-Web GZIPFilter weblogicx.servlet.gzip.filter.GZIPFilter [snip]
要提高J2EE Web应用程序的整体客户端性能,可以尝试使用WebUtilities java库。
它提供filter,标记,servlet组件以应用各种客户端性能实践,从而对PageSpeed / YSlow产生更高的性能评级。
从版本0.0.4开始,它有助于实现以下性能实践。
- 最小化HTTP请求 – 可以在一个请求中提供多个JS / CSS文件
- 客户端缓存 – 添加适当的Cache-Control,Expires标头
- 即时JS / CSS缩小 – 使用YUICompressor
- 压缩 – 支持gzip / deflate / compress编码的双向压缩
- 服务器上的响应缓存 – 避免重新处理未更改的资源
- 添加字符编码 – 让浏览器提前知道
它还针对MIME,URL或用户代理进行高度可配置/自定义。
我在这里查看了Tomcat文档: http : //tomcat.apache.org/tomcat-5.5-doc/config/http.html
它提到使用compression="force"
对我有用。 它还说你可以设置一个minimum number
。 这对我来说很好
(压缩任何超过256Kb)
compressableMimeType
的默认值意味着我不需要该属性。 另请注意,它不会列出CompressionMinSize
属性。