使用deflate壓縮Cookie
Cookie再HTTP的頭部,不能再壓縮HTTP Body時進行壓縮,但是Cookie可以把多個k/v看成普通文字,進行文字壓縮。
Cookie壓縮之後進行轉碼,因為Cookie中不能有控制字元,只能包含ASCII碼(34-126)的可見字元;
//使用Deflater壓縮再進行BASE64編碼。
//Filter在頁面輸出時對Cookie進行全部或者部分壓縮
private void compressCookie(Cookie c,HttpServletResponse res)
{
try
{
System.out.println("before compress length:" + c.getValue().getBytes().length);
//
//可以捕獲記憶體緩衝區的資料,這個類實現了一個輸出流,資料轉為位元組陣列,這個資料可以轉為toByteArray()和toString();
ByteArrayOutputStream bos = null;
bos = new ByteArrayOutputStream();
//“deflate” 壓縮格式壓縮資料實現輸出流過濾器
DeflaterOutputStream dos = new DeflaterOutputStream(bos);
dos.write(c.getValue.getBytes());
dos.close();
//Base64編碼
String compress = new sun.misc.BASE64Encoder().encode(bos.toByteArray());
//新增到httpServletResponse中
res.addCookie(new Cookie("compress",compress));
System.out.println("after compress length:" + compress.getBytes().length);
}catch(IOException e)
{
e.printStackTrace();
}
}
//使用InflaterInputStream進行解壓
private void unCompressCookie(Cookie c)
{
try
{
//可以捕獲記憶體緩衝區的資料,這個類實現了一個輸出流,資料轉為位元組陣列,這個資料可以轉為toByteArray()和toString();
ByteArrayOutputStream out = new ByteArrayOutputStream();
//位元組型陣列
//BASE64編碼
byte[] compress = new sun.misc.BASE64Decoder()
.decodeBuffer(new String(c.getValue().getBytes()));
ByteArrayInputStream bis = new ByteArrayInputStream(compress);
InflaterInputStream inflater = new InflaterInputSteam(bis);
byte[] b = new byte[1024];
int count;
while((count = inflater.read(b))>0)
{
out.write(b,0,count);
}
inflater.close();
System.out.println(out.toByteArray());
}catch(Exception e)
{
e.printStackTrace();
}
}
DeflaterOutputStream對Cookie進行壓縮,Deflater壓縮之後BASE64編碼。
同樣使用Deflater進行編碼然後,inflaterInputStream對Cookie進行解壓
相關文章
- linux 高效壓縮工具之xz的壓縮解壓使用Linux
- Java使用Zip壓縮Java
- 使用 gulp 壓縮 JSJS
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- JAVA壓縮和解壓縮Java
- zip壓縮和解壓縮
- 使用gzip壓縮檔案
- linux壓縮解壓縮Linux
- 字串的壓縮和解壓縮字串
- 檔案壓縮和解壓縮
- JS壓縮方法及批量壓縮JS
- aix 下壓縮與解壓縮AI
- linux壓縮和解壓縮命令Linux
- tar 分卷壓縮&解壓縮命令
- AIX 上壓縮與解壓縮AI
- 使用compress壓縮檔案
- Linux下各壓縮方式測試(壓縮率和使用時間)Linux
- 強大且易於使用的壓縮和解壓縮軟體:Keka for MacMac
- linux下壓縮解壓縮命令Linux
- linux壓縮和解壓縮命令整理Linux
- 簡單的zip壓縮和解壓縮
- Linux壓縮及解壓縮命令Linux
- linux壓縮和解壓縮命令大全Linux
- Python實現壓縮和解壓縮Python
- 使用jsmin壓縮javascript指令碼JSJavaScript指令碼
- hadoop中使用lzo的壓縮Hadoop
- SAPCAR 壓縮解壓軟體的使用方法(zt)PCA
- Linux tar分卷壓縮與解壓縮Linux
- Linux tar壓縮和解壓縮等命令Linux
- aix 檔案的壓縮與解壓縮AI
- 打包/壓縮
- HTTP壓縮HTTP
- ORACLE 壓縮Oracle
- Linux壓縮解壓Linux
- Linux下常用壓縮格式的壓縮與解壓方法Linux
- ppt怎麼壓縮,ppt壓縮的技巧分享
- 壓縮Word,一鍵實現Word文件壓縮
- Linux中檔案的壓縮和解壓縮Linux