Http协议实现数据的压缩

package cn.itcast.web; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.GZIPOutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Demo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String data ="aaaaaaaaaaaaaaaaaaa"; System.out.println("原始数据大小:"+data.getBytes().length); ByteArrayOutputStream bout =new ByteArrayOutputStream(); //缓冲流 GZIPOutputStream gout =new GZIPOutputStream(bout); //压缩流 gout.write(data.getBytes()); //获取到数据自动压缩,压缩到缓冲流中 gout.close(); //压缩流一关就会进入到缓冲流中 byte gzip[] =bout.toByteArray(); //得到压缩后的数据 System.out.println("压缩后的数据大小:"+gzip.length); //通知浏览器数据采用的压缩格式(设置Http响应中的消息头) response.setHeader("Content-Encoding", "gzip"); //通知浏览器回送压缩后数据的长度(设置Http响应中的消息头) response.setHeader("Content-Length",gzip.length+""); response.getOutputStream().write(gzip); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
如果看到的压缩后的数据大小比压缩前的数据大的话,说明被压缩的数据太小,实际上需要压缩的数据是非常大的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值