怎么做gzip压缩(转自:http://www.siviy.com/webnews/newsshow.asp?id=510)
2011-10-18 13:35
495 查看
在网站建设或者运营中,特别是在网站优化中,我们可能会遇到一个词:“gzip压缩”。那么什么是gzip呢?怎么做gzip压缩呢?
gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。压缩效率非常高,通常可以达到70%的压缩率,一般的网页体积是40KB左右,用gzip压缩之后,只剩下12KB了。gzip压缩采用通用的压缩算法压缩HTML、JavaScript、CSS等静态文件和asp、aspx、php、jsp等动态文件。是不是很不错呢?我们通常所做的文件打包也是压缩的一种。为什么不可以将我们的网页“打包”发给浏览器来读取呢?gzip的优点是:
可以节省带宽资源;
加快网站加载速度。
节省带宽,对于大部分的网站来说,都没有什么关系,因为很多的网站都是小网站,特别在东莞企业网站市场。节省带宽没有什么特殊的用处。因为网站的流量本来就不大。
加快网站加载速度这点对大部分的网站来说就很有必要了,为什么呢?因为网站打开速度快慢和网站优化有很大的关系,也符合网站用户体验度,打开快的网站,浏览者肯定很欣赏。你不可能喜欢一个打开要8秒钟的网站吧?对于一些网站来说,打开速度慢一秒,至少会减少1%的营业额。所以,加快网站加载速度是网站gzip的最大用处。
HTTP压缩工作原理
gzip是HTML压缩算法的一种,HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩工作原理是:
Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
怎么做gzip压缩呢?大致有:在Contol Pannel开启gzip、开启http服务器gzip、利用php本身的gzip。
IE6和火狐都支持客户端gzip,在网页传输之前,先使用gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示。
IIS6已经内建了gzip压缩的支持。在IIS6上做gzip压缩的方法是:
如果你需要压缩静态文件,可以先在硬盘上新建一个目录,并给它“IUSR_机器名”这个用户设置写权限。如果压缩动态文件就可以不用这样的,因为它的页面是每次都动态生成的(页面动态生成),压缩完就放弃。然后在IIS管理器中,“网站”上面右键-属性,不是下面的某个站点,而是整个网站。进入“服务”标签,选上启用动态内容压缩,静态内容压缩。给gzip的临时目录空间不要太大了200MB左右就够了.
然后选中网站下面那个服务器扩展,新建一个服务器扩展。可以用任何你想用的名字,下面的添加文件的路径是:
c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展。
这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。我们只能去修改它的配置文件了。
在c:\windows\system32\inetsrv\下面有个MetaBase.xml文件,可以用记事本打开,找到IIsCompressionScheme,有三个相同名字的段,
分别是
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
<IIsCompressionSchemes Location ="/LM/W3SVC/Filters/Compression/Parameters"
前两段有基本相同的参数,在这两段的参数HcScriptFileExtensions下面都加上一行aspx,如果你有其它的动态程序要压缩,也加在这里。HcDynamicCompressionLevel改成9,9是性价比最高的一个。
至此,怎么做gzip压缩的过程我们就都实现了,需要注意的是:网页启用了gzip压缩后网站打开速度通常可能不会有太明显的感觉(相对于浏览者),可以用一些特定的来检查你的网页是否压缩过了,以及压缩比和加快的速度。
gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。压缩效率非常高,通常可以达到70%的压缩率,一般的网页体积是40KB左右,用gzip压缩之后,只剩下12KB了。gzip压缩采用通用的压缩算法压缩HTML、JavaScript、CSS等静态文件和asp、aspx、php、jsp等动态文件。是不是很不错呢?我们通常所做的文件打包也是压缩的一种。为什么不可以将我们的网页“打包”发给浏览器来读取呢?gzip的优点是:
可以节省带宽资源;
加快网站加载速度。
节省带宽,对于大部分的网站来说,都没有什么关系,因为很多的网站都是小网站,特别在东莞企业网站市场。节省带宽没有什么特殊的用处。因为网站的流量本来就不大。
加快网站加载速度这点对大部分的网站来说就很有必要了,为什么呢?因为网站打开速度快慢和网站优化有很大的关系,也符合网站用户体验度,打开快的网站,浏览者肯定很欣赏。你不可能喜欢一个打开要8秒钟的网站吧?对于一些网站来说,打开速度慢一秒,至少会减少1%的营业额。所以,加快网站加载速度是网站gzip的最大用处。
HTTP压缩工作原理
gzip是HTML压缩算法的一种,HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩工作原理是:
Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
怎么做gzip压缩呢?大致有:在Contol Pannel开启gzip、开启http服务器gzip、利用php本身的gzip。
IE6和火狐都支持客户端gzip,在网页传输之前,先使用gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示。
IIS6已经内建了gzip压缩的支持。在IIS6上做gzip压缩的方法是:
如果你需要压缩静态文件,可以先在硬盘上新建一个目录,并给它“IUSR_机器名”这个用户设置写权限。如果压缩动态文件就可以不用这样的,因为它的页面是每次都动态生成的(页面动态生成),压缩完就放弃。然后在IIS管理器中,“网站”上面右键-属性,不是下面的某个站点,而是整个网站。进入“服务”标签,选上启用动态内容压缩,静态内容压缩。给gzip的临时目录空间不要太大了200MB左右就够了.
然后选中网站下面那个服务器扩展,新建一个服务器扩展。可以用任何你想用的名字,下面的添加文件的路径是:
c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展。
这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。我们只能去修改它的配置文件了。
在c:\windows\system32\inetsrv\下面有个MetaBase.xml文件,可以用记事本打开,找到IIsCompressionScheme,有三个相同名字的段,
分别是
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
<IIsCompressionSchemes Location ="/LM/W3SVC/Filters/Compression/Parameters"
前两段有基本相同的参数,在这两段的参数HcScriptFileExtensions下面都加上一行aspx,如果你有其它的动态程序要压缩,也加在这里。HcDynamicCompressionLevel改成9,9是性价比最高的一个。
至此,怎么做gzip压缩的过程我们就都实现了,需要注意的是:网页启用了gzip压缩后网站打开速度通常可能不会有太明显的感觉(相对于浏览者),可以用一些特定的来检查你的网页是否压缩过了,以及压缩比和加快的速度。
相关文章推荐
- 正则表达式在UBB论坛中的应用(http://www.blueidea.com/bbs/newsdetail.asp?id=303249)
- http://www.wlerp.com/News/detail.asp?id=22
- 明基成人礼:巅峰战将营 http://www.cnvn.com.cn/Article/ShowArticle.asp?ArticleID=3172
- 因ARP欺骗网站源文件被注入了代码http://www.cnbruce.com/blog/showlog.asp?cat_id=32&log_id=1191
- http://www.dev-club.com/club/bbs/showEssence.asp?id=26362
- 用Netsh快速切换网络TCP/IP配置(from:http://www.aspxboy.com/private/showthread.asp?postid=419)
- 解决ASP(图像)上传漏洞的方法http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=942
- 【转载】【权限控制】角色访问动态生成用户权限菜单树(转载: http://www.comprg.com.cn/post_show.asp?id=7873 )
- Gzip压缩文件内容提高网页浏览速度(转自:http://www.funnyapple.com/gzip-compress-for-improving-web-speed.html)
- 不完全HTML在线编辑器收集 http://www.cnbruce.com/blog/showlog.asp?log_id=1021
- MFC 弹出窗口MessageBox的使用[转自http://www.bigasp.com.cn/blog/?action=show&id=51]
- HTML在线编辑器的原理(转载整理)http://www.cnbruce.com/blog/showlog.asp?log_id=1168
- VS .NET 2005中水晶报表的使用 http://www.tianyablog.com/blogger/post_show.asp?BlogID=116800&PostID=9731765
- 在C#中使用MSHTML的高级支持接口(引自http://www.vckbase.com/document/viewdoc.asp?id=1018)
- http://www.lihuasoft.net/news/show.php?id=4395
- 整合动网用户登陆 http://www.hotrich.com/blog/article.asp?id=20
- 闭合浮动元素超级简单的方法http://www.jluvip.com/blog/article.asp?id=281
- 申请免费JSP空间(支持FTP上传!)http://www.goldenbg.com/article.asp?id=247
- ASP.NET 缓存(五)--使用文件依赖项缓存页输出http://www.opent.cn/?action=show&id=192
- ASP.NET 缓存(四)--使用缓存键依赖项缓存页输出http://www.opent.cn/?action=show&id=191