Glassfish 3 - gzip压缩对.jsp不起作用

时间:2011-08-25 15:48:49

标签: jsp netbeans glassfish gzip

请观看此简短视频,详细说明我的问题http://youtu.be/uAza4m3fxpY?hd=1

我有一台运行Netbeans Web项目的Glassfish 3.1服务器。 我有一个非常简单的.jsp文件,内容类型设置为'text / html',并且正文中有大段虚拟文本。它看起来像这样:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Gzip Test</title>
    </head>
    <body>
        <h1>Gzip compsression test</h1>
        <p>****LOTS OF DUMMY TEXT***</p>
    </body>
</html>

在Glassfish管理员中,我为HTTP侦听器强制启用了gzip压缩(如本指南中所述:http://www.vikasing.com/2010/01/enable-gzip-compression-on-glassfish-v3.html

在Firefox中加载页面并查看响应标题时,我希望看到Content-Encoding: gzip,但它不存在。

为什么内容没有被Gzip压缩?

4 个答案:

答案 0 :(得分:1)

我发现这是Glassfish 3.1中的一个错误。它不会使用accept-encoding字符对,标题进行拆分。例如,如果你将firefox的accept-encoding标题设置为:gzip, deflate,它将不会对内容进行gzip,因为逗号会将其搞砸,但如果将其设置为gzip则会被gzip压缩为服务器因为没有逗号可以阻塞。显然这已在Glassfish 3.1.1中修复,但我还没有测试过。有关详细信息,请参阅:http://www.java.net/forum/topic/glassfish/glassfish/gzip-compression-glassfish-3-doesnt-work?force=899

答案 1 :(得分:0)

感谢您的视频。 我记得这是在Glassfish 3.0作为FishCAT的一部分发布之前出现的。

我认为您遇到的问题是因为您只设置了一个侦听器'http-listener-1',您还需要设置'http-listener-2'。 (也许你这样做了,但没有在视频中显示出来?)

答案 2 :(得分:0)

Glassfish 3.1.2甚至4.0 Beta中的相同错误 - 看起来gzip压缩变得完全错误。即使firefox的accept-encoding设置为仅gzip,它也不起作用。 您可能正在使用Google的CompressionFilter,但由于它使用了许多依赖项,因此使用它非常困难。

答案 3 :(得分:0)

我对glassfish 3.1.2.2和gzip也有同样的问题。

不压缩版本1.0中对HTTP请求的响应。您必须在 HTTP 1.1 中发送请求,才能从您的glassfish服务器获取gzipped响应。

此外,您必须在http请求中添加标题“Accept-Encoding:gzip”