2015-06-01 5 views
0

Я использую jvoss EAP 6.1 sevrer, в котором я хочу включить сжатие GZIP для моих файлов HTML, CSS и javaScript.Как включить сжатие Gzip в сервере JBoss EAP

Я совершенно новичок в этой технологии сжатия, может кто-нибудь предложить мне учебник или может дать мне несколько шагов, чтобы включить сжатие на сервере Jboss EAP 6.1.

Наряду с этим у меня есть следующие сомнения:

1) Мне нужно сжать файлы на моем рабочем Do или, если мой JBoss сервер будет компрессия включена она будет заботиться о сжатии, мне просто нужно развернуть война.

2) Когда сервер отвечает на мой запрос, мне нужно явно конвертировать или декодировать или распаковывать файлы для их использования или для их интерпретации?

ответ

2

Сжатие GZIP для веб-ресурсов необязательно, поэтому вы не можете сжать их все, а затем надеяться, что каждый веб-клиент сможет его обработать. Вот почему он обычно включается во время выполнения, когда клиент (возможно, веб-браузер) говорит, что «gzip подходит для меня» с заголовком Accept-Encoding: gzip, deflate. См. https://en.wikipedia.org/wiki/HTTP_compression.

.

На стороне сервера магия обрабатывается HTTP Filter, которая перехватывает запрос, отмечает заголовок, затем отправляет запрос на остальную часть приложения, перехватывает ответ и сжимает соответственно.

JBoss имеет некоторые встроенные в поддержку: Enabling gzip compression for Jboss

Если вы хотите сделать это самостоятельно, вам нужно написать Filter и настроить его в web.xml.

Java2s has an implementation:

public void doFilter(ServletRequest req, ServletResponse res, 
     FilterChain chain) throws IOException, ServletException { 
    if (req instanceof HttpServletRequest) { 
     HttpServletRequest request = (HttpServletRequest) req; 
     HttpServletResponse response = (HttpServletResponse) res; 
     String ae = request.getHeader("accept-encoding"); 
     if (ae != null && ae.indexOf("gzip") != -1) {   
     GZIPResponseWrapper wrappedResponse = new GZIPResponseWrapper(response); 
     chain.doFilter(req, wrappedResponse); 
     wrappedResponse.finishResponse(); 
     return; 
     } 
     chain.doFilter(req, res); 
    } 
    } 

или вы можете использовать библиотеку оптимизации производительности как WebUtilities включить сжатие, как описано здесь https://github.com/rpatil26/webutilities/wiki/Enable-Compression

Смотри также:

+0

Поблагодарите u soo much Aaron :) Это помогло alot – vaibhav

+0

Здравствуйте @Aaron Digulla Я реализовал этот код на моем jBoss EAP 6.1, и он отлично работал, когда я работал на моем локальном сервере. Но когда я перешел в реальную серверную среду, изменения не отражаются. Мой сервер - это JBoss Server EAP 6.1 и работает на ОС Linux. обратитесь к моему новому вопросу. http://stackoverflow.com/questions/30588454/gzip-compression-is-not-woking-on-jboss-server-when-depolyed-on-linux-system – vaibhav

Смежные вопросы