Tomcat 启动GZIP 压缩
来源:互联网 发布:手机论坛软件 编辑:程序博客网 时间:2024/05/16 10:46
【1. GZIP 压缩简介】
1. HTTP 协议支持GZIP 压缩机制,也称协议压缩。 HTTP GZIP压缩是由WEB服务器和浏览器共同遵守的协议,也就是说WEB服务器和浏览器都必须遵守。目前主流的服务器和浏览器都支持GZIP压缩技术。
2. GZIP 主要用来压缩html,css,javascript,等静态文本文件,也支持对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩。
3. GZIP 压缩的比率通常在3~10 倍之间,这样可以大大节省服务器的网络带宽,大大提升浏览器的浏览速度。
4. GZIP 是一种数据压缩格式,默认且目前仅使用deflate算法压缩data部分;deflate是一种压缩算法,是huffman编码的一种加强
5. 协议压缩就是依据HTTP协议进行压缩,不需要程序员进行压缩,解压编码,而是把压缩过程交给WEB服务器,将解压过程交给客户端。 如果客户端为支持GZIP压缩的浏览器,那么解压过程也不需要程序员参与,浏览器会按照一定的规则自动进行解压缩;如果客户端为HttpClient ,那么就需要手动进行GZIP解码了。
6. 压缩过程:客户端发送http请求,如果请求头中携带Accept-Encoding gzip,deflate ,再看响应内容的类型是否满足服务器配置的需要压缩的类型,如果符合,那么WEB服务器在传输响应内容之前,会对响应内容进行压缩,并在响应头中添加Content-Encoding gzip;如果不符合,那么将不压缩,直接返回。
7. 解压过程:(浏览器)客户端接收到响应,如果响应头中包含Content-Encoding gzip,那么浏览器会自动将响应内容进行GZIP解压缩,然后再呈现在页面上。如果不包含,那么将直接呈现在页面上。
【2. Tomcat 启动GZIP 压缩机制】
打开tomcat 安装路径,打开conf 目录下的server.xml 文件,进行如下修改
<Connector connectionTimeout="20000" port="8888" protocol="HTTP/1.1"redirectPort="8443" compression="on" compressionMinSize="1"compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain" />compression="on" 打开压缩功能
compressionMinSize="2048" 启用压缩的输出内容大小,这里面默认为2KB
noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩(不填表示对所有都是用)
compressableMimeType="text/html,text/xml" 压缩类型(默认为text/html,text/xml,text/plain)
【3. 测试】
1. 新建一 WEB应用, 然后创建一Servlet
package org.zgf.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/testHttp")public class TestHttp extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//必须指定响应类型response.setHeader("Content-Type", "text/plain; charset=UTF-8");StringBuffer sb = new StringBuffer();for(int i=0; i<1000; i++){sb.append("hello,world! hello,java! ");}response.getWriter().write(sb.toString());}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}
2. 部署应用,启动服务器,在浏览器中访问。
【4. Eclipse 中对Tomcat设置GZIP压缩】
Eclipse中新建一个Server时,会自动将Tomcat 的配置copy到工作空间中一份,而启动的时候会加载工作空间中的配置文件,所以修改Tomcat 安装包下的server.xml 是不生效的,需要修改Eclipse 工作空间中的server.xml 文件。
由于浏览器是自动进行GZIP 解压缩的,所以直接在浏览器中看响应内容是看不出来是否进行了GZIP压缩的, 因此可以使用HttpClient 来进行访问。HttpClient 可以参考笔者的另一篇博客。
- Tomcat 启动gzip压缩
- Tomcat 启动GZIP 压缩
- Tomcat配置Gzip压缩
- tomcat gzip压缩
- tomcat GZIP 压缩参数设置
- tomcat的gzip压缩
- tomcat启用gzip压缩
- tomcat下Gzip压缩
- Tomcat配置gzip压缩
- tomcat启用gzip压缩
- Tomcat开启Gzip压缩
- Tomcat 开启Gzip压缩
- Tomcat启用GZip压缩
- tomcat 加 gzip 压缩
- tomcat启用GZIP压缩
- Tomcat gzip压缩
- tomcat启用gzip压缩
- Tomcat启用Gzip压缩
- opencv读取视频
- ZOJ Missile 3460 (最大流+二分)
- iOS UIImageView自适应图片大小
- Bringing up interface eth0: Error: No suitable device found: no device found for connection 'System
- 二叉树系列——二叉树的镜像
- Tomcat 启动GZIP 压缩
- jquery笔记
- 高并发web系统优化总结
- Java过滤器,SpringMVC拦截器之间的顺序关系
- IOS taBbar item角标设置
- 如何将QT程序移植到开发板上运行
- 在tomcat下指定JDK路径
- JAVA读取PHP乱码问题
- crontab命令-自动化执行