2011-08-25 91 views
0

請觀看以下視頻短片,顯示我的詳細問題:http://youtu.be/uAza4m3fxpY?hd=1Glassfish的3 - gzip壓縮不起作用的.JSP

我有一個Glassfish的3.1服務器運行一個NetBeans Web項目。 我有一個非常簡單的.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管理,我已經被迫啓用gzip壓縮的HTTP監聽器(如本指南中所述:http://www.vikasing.com/2010/01/enable-gzip-compression-on-glassfish-v3.html

當在Firefox瀏覽器頁面,並期待在響應標題,我期望看到Content-Encoding: gzip,但它不在那裏。

爲什麼內容沒有被壓縮?

回答

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瞭解更多詳情。

0

感謝您的視頻。 我記得這是在Glassfish 3.0作爲FishCAT的一部分發布之前發佈的。

我認爲你遇到的問題是因爲你只設置了一個監聽器'http-listener-1',你也需要設置'http-listener-2'。 (也許你做了這個,但沒有在視頻中顯示它?)

+0

爲什麼當我只使用一個偵聽器時需要啓用它?這是一個錯誤?我的初步測試表明,這對我來說沒有任何改變。 – bradvido

0

在Glassfish 3.1.2甚至4.0 Beta中的相同錯誤 - 它看起來像gzip壓縮已成爲完全越野車。即使firefox的accept-encoding只設置爲gzip,它也不起作用。 您可能正在使用Google的CompressionFilter,但由於它使用了大量的依賴關係,因此使用起來很困難。

0

我對玻璃魚3.1.2.2和gzip有同樣的問題。

版本1.0中對HTTP請求的響應未壓縮。您必須通過HTTP 1.1發送您的請求以從您的glassfish服務器獲得gzip答覆。

更多結束,您必須在您的http請求中添加標頭「Accept-Encoding:gzip」