全站Gzip压缩原理详解

该博客详细阐述了全站Gzip压缩的工作原理,通过过滤器机制在每次请求时捕获内容,将其存储到内存中,然后在第二次执行过滤器时对内容进行压缩,并利用ServletResponseWrapper重写getOutputStream方法,将压缩后的数据输出到客户端。
摘要由CSDN通过智能技术生成
在客户端访问数据时候,为了尽可能高效率的传输,在传输的JSP网页的时候,可以采用GZIP压缩的方式,使得网页经过压缩后再去传输。在此,使用过滤器,对发送到的客户端的显示,都先进行一次压缩。然后再显示,具体流程可以参考下图:

也就是说,当每获得一次请求是的时候,通过对getOutputStream的重写,不让其输出到客户端,而是 将其写入到内存字节数组中去。   然后,当需要输出的时候, 也就是过滤器的第二次执行从chain.doFilter(request,response)开始

再次充内存中取出缓存的数据,进行压缩,并用response进行输出。


package cn.Filter;
 
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.zip.GZIPOutputStream;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.Fi
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值