gzip优化网络传输量提高传输效率[转]

using System;
using System.Collections.Generic;
using
System.Linq;
using System.Text;
using System.IO;
using
System.IO.Compression;
using System.Data;

namespace Lis2013HISWSTest
{
public class ZipHelper
{

/// <summary>
/// 解压
/// </summary>
///
<param name="Value"></param>
///
<returns></returns>
public static DataSet
GetDatasetByString(string Value)
{
DataSet ds = new
DataSet();
string CC = GZipDecompressString(Value);

System.IO.StringReader Sr = new StringReader(CC);

ds.ReadXml(Sr);
return ds;
}
///
<summary>
/// 根据DATASET压缩字符串
/// </summary>

/// <param name="ds"></param>
///
<returns></returns>
public static string
GetStringByDataset(string ds)
{
return
GZipCompressString(ds);
}
/// <summary>

/// 将传入字符串以GZip算法压缩后,返回Base64编码字符
/// </summary>
///
<param name="rawString">需要压缩的字符串</param>
///
<returns>压缩后的Base64编码的字符串</returns>
public static string
GZipCompressString(string rawString)
{
if
(string.IsNullOrEmpty(rawString) || rawString.Length == 0)
{

return "";
}
else

{
byte[] rawData =
System.Text.Encoding.UTF8.GetBytes(rawString.ToString());

byte[] zippedData = Compress(rawData);
return
(string)(Convert.ToBase64String(zippedData));
}

}
/// <summary>
/// GZip压缩
///
</summary>
/// <param name="rawData"></param>

/// <returns></returns>
public static byte[]
Compress(byte[] rawData)
{
MemoryStream ms = new
MemoryStream();
GZipStream compressedzipStream = new
GZipStream(ms, CompressionMode.Compress, true);

compressedzipStream.Write(rawData, 0, rawData.Length);

compressedzipStream.Close();
return ms.ToArray();

}
/// <summary>
/// 将传入的二进制字符串资料以GZip算法解压缩
///
</summary>
/// <param
name="zippedString">经GZip压缩后的二进制字符串</param>
///
<returns>原始未压缩字符串</returns>
public static string
GZipDecompressString(string zippedString)
{
if
(string.IsNullOrEmpty(zippedString) || zippedString.Length == 0)

{
return "";
}
else

{
byte[] zippedData =
Convert.FromBase64String(zippedString.ToString());
return
(string)(System.Text.Encoding.UTF8.GetString(Decompress(zippedData)));

}
}
/// <summary>
/// ZIP解压
///
</summary>
/// <param
name="zippedData"></param>
///
<returns></returns>
public static byte[]
Decompress(byte[] zippedData)
{
MemoryStream ms = new
MemoryStream(zippedData);
GZipStream compressedzipStream = new
GZipStream(ms, CompressionMode.Decompress);
MemoryStream
outBuffer = new MemoryStream();
byte[] block = new
byte[1024];
while (true)
{
int
bytesRead = compressedzipStream.Read(block, 0, block.Length);

if (bytesRead <= 0)
break;
else

outBuffer.Write(block, 0, bytesRead);
}

compressedzipStream.Close();
return
outBuffer.ToArray();
}
}
}

时间: 2024-10-27 13:29:04

gzip优化网络传输量提高传输效率[转]的相关文章

雅虎十四条 - 14个优化网站性能提高网站访问速度的技巧

14个优化网站性能提高网站访问速度的技巧 又叫“雅虎十四条”,想起一年前那个懵懂的我,大四傻乎乎的跑到大学城面试前端,那个时候以为寒暑假看了两套CSS的视频,就很牛B了,出发先还把视频温了一下,嗯嗯,这是滑动门,嗯嗯这是绝对定位,嗯嗯这是浮动清除…… 当时是彪叔面试我的,当时我还不知道那个人,全身黑漆漆的,黑色T-shirt,黑色皮肤,黑色帽子,黑色墨镜,还有点黑色胡渣的人,就是彪叔,补做了试题后支支吾吾的跟他谈了一下,发现完全不行,第一个问题是“雅虎十四条”是什么?然后我蒙了,pardon?

优化TCP,提高HTTP效率

1.一次网络访问的流程 http://www.taobao.com:80/market/66/meizhuang.php?spm=1.7274553.1997517397.2.WtZPYg&acm=20140506001.1003.2.72323&uuid=1LmYAFs6&scm=1003.2.20140506001.OTHER_1400654077067_72323&pos=0 第一.浏览器解析主机名:http://www.taobao.com 第二.根据主机名获得IP

如何高质量优化自己网站提高排名?

有很多SEO新手,对网站优化知识有些了解,但不知道具体怎么操作,所以今天我来谈谈如何更加科学合理的优化自己的网站,让新手们少走弯路,这也只是我在做网站优化时的一些个人总结,希望能对SEO新手们有所帮助. 网站优化一般分为站内优化和站外优化.站内优化通俗的讲就是网站内部结构优化,主要操作包括网站代码优化.Meta标签优化.Url优化.站内内容优化等:站外优化指的是网站外部优化,包括发外链与品牌的推广.下面来细说一下: 站内优化 一.代码优化:网站开发语言建议采用PHP,网页框架采用DIV+CSS样

使用gzip优化web应用(filter实现)

相关知识: gzip是http协议中使用的一种加密算法,客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,返回到客户端,客户端加载后渲染呈现,这种情况文件一般都比较大,如果开启Gzip ,那么服务器端响应后,会将页面,JS,CSS等文本文件或者其他文件通过高压缩算法将其压缩,然后传输到客户端,由客户端的浏览器负责解压缩与呈现.通常能节省40%以上的流量(一般都有60%左右),一些PHP,JSP文件也能够进行压缩. 1.实现: Tomcat 开启Gzip : 1.找到T

C++ 代码性能优化 -- 循环分割提高并行性

对于一个可结合和可交换的合并操作来说,比如整数的加法或乘法, 我们可以通过将一组合并操作分割成 2 个或更多的部分,并在最后合并结果来提高性能. 原理: 普通代码只能利用 CPU 的一个寄存器,分割后可以利用多个寄存器. 当分割达到一个数量时,寄存器用完,性能不再提升,甚至会开始下降. 用代码来描述,如下: // 一般情况下的代码 for (i = 1; i < n+1; i++) { res = res OPER i; } // 循环分割后代码 for (i = 1; i < n; i+=2

优化网络连接速度的五个小技巧

工作中有很多不尽如人意的事情,网络速度慢就是其中之一.不幸的是,网速慢这个问题很多时候不是你能够简单解决的.诸如交换拥塞或网段拥塞(你的网络之外)等情况并不是你能够控制的.不过,这里仍然有几个小技巧,能够帮助你优化网络连接速度. 1 避免 DNS瓶颈 如果你的网络是活动目录环境,那么一定会有一个前置的DNS服务器.最近我看到不少企业都采用性能不怎么样的托管主机虚拟成多个服务器,并将DNS服务装入其中.之所以这样做,是因为很多人都认为DNS服务对系统资源的需求并不大,因此DNS服务器可以用很低的资

14个优化网站性能提高网站访问速度技巧

相信互联网已经越来越成为人们生活中不可或缺的一部分.ajax,flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实 现的功能.比如Google机会已经把最基本的office应用都搬到了互联网上.当然便利的同时毫无疑问的也使页面的速度越来越慢.自己是做前端开发的,在性能方面,根据yahoo的调查,后台只占5%,而前端高达95%之多,其中有88%的东西是可以优化的. 以上是一张web2.0页面的生命周期图.工程师很形象地讲它分成了“怀孕,出生,毕业,结婚”四个阶段.如果在我们

(转)优化tomcat,提高网站运行速度

网站优化方案: 网站优化有很多方面,这里我们先主要讲讲 tomcat优化.[主要针对tomcat6.0及以上版本] 1.  为jvm增加更多的内存,tomcat安装时,默认为126M,可以设置. Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机.您可以选择自己的需要选择不同的操作系统和对应的 JDK的版本(只要是符合Sun发布的Java规范的),但我们推荐您使用Sun公司发布的JDK.确保您所使用的版本是最新的,因为Sun公司和其它一 些公司一直在为提

KeyMob:移动广告优化 帮助开发者提高广告收益

KeyMob是为Android.IOS应用开发者免费提供的移动广告优化的管理平台,目前聚合了多家国内外主流的广告平台,开发者可以在KeyMob后台轻松设置一家或多家适合自己的应用的广告平台,有效提高广告填充率,助开发者提高广告带来的收益. 如何帮助开发者提高广告收益? 1.KeyMob聚合了国内外多家广告平台,开发者在自己的应用中嵌入KeyMob广告优化管理的SDK后,能方便.快速的嵌入一家或多家广告平台. 2.开发者在KeyMob的后台管理广告,就能在需要时方便.快速的切换广告平台,不需重新发