gzip压缩tomcat服务器响应包,大幅提升web性能

前端开发 作者: 2024-08-25 19:50:01
忘记是第几次读《高性能网站建设指南》的“规则4──压缩组件”一章了,之前一直搞得浑浑噩噩,今天才恍然有所觉悟,原来通过减小HTTP响应大小来减少响应时间应用到tomcat服务器上是这么一回事,结果令人欣慰万分,同时令我感到羞愧。gzip压缩率高达70%左右,这对于提升web性能来说简直就是逆天的表现

1、效果展现



2、如何使用gzip

<Connector executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF⑻" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata" compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"/>
  1. compression="on" 开启紧缩
  2. compressionMinSize="2048"大于2KB的文件才进行紧缩(《高性能网站建设指南》建议1KB或2KB以上,缘由不得而知)
  3. noCompressionUserAgents="gozilla,traviata",对这两种阅读器,不进行紧缩(我也不知道这两种阅读器是啥,百度上没找到)
  4. compressableMimeType="text/html,text/json"表明支持html、xml、js、css、json等文件格式的紧缩(plain为无格式的,但对具体是甚么,我比较概念模糊)。

3、到底有无开启gzip

  1. java代码测试(没有外网权限时,可用。TGZIP.java(详细参照启用Tomcat6的隐藏Gzip紧缩功能),注意需要引入apache的commons包!)。
  2. http://gzip.zzbaike.com/,文章开始的图片就来自于这个网站(无外网权限的,不可用,该种做法无需介绍了)。

4、cache-control

①、CacheControlFilter.java

package com.honzh.common.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; public class CacheControlFilter implements Filter { public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException { HttpServletResponse resp = (HttpServletResponse) response; // resp.setHeader("Expires","Tue,03 Jul 2001 06:00:00 GMT"); // resp.setDateHeader("Last-Modified",new Date().getTime()); // resp.setHeader("Cache-Control","no-store,no-cache,must-revalidate,max-age=0,post-check=0,pre-check=0"); resp.setHeader("Cache-Control","max-age=0,private"); // resp.setHeader("Pragma","no-cache"); chain.doFilter(request,response); } @Override public void destroy() { } @Override public void init(FilterConfig arg0) throws ServletException { } }

②、web.xml中增加以上filer。

<filter> <filter-name>cacheControlFilter</filter-name> <filter-class>com.honzh.common.filter.CacheControlFilter</filter-class> </filter> <filter-mapping> <filter-name>cacheControlFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

5、gzip和无gzip的要求区分



原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_68569.html