GZip 和 deflate压缩
来源:互联网 发布:mysql如何计算时间差 编辑:程序博客网 时间:2024/05/20 03:37
为了优化网站的访问速度,我们可以通过对静态内容进行压缩,从而减少网页加载的时间,大大节省用户的带宽。在这篇文章中,我将介绍如何使用Apache和.htaccess文件进行静态内容压缩。
首先让我介绍一下,我们可以使用两种不同的方法压缩内容:GZip 和 deflate。
介绍
GZip方法在早期的apache版本中使用(在Apache 1.3之前)。但在那之后apache引入了deflate方法,相比GZip并没有太大的效果(但仍是非常好的)。然而,GZip在apache 1.3之后不再提供更多的支持。因此,你的Apache版本必须大于1.3,如果没有,你必须升级到最新版本的Apache。
在使用压缩之前,你必须启用apache的mod_deflate模块。要启用这个模块,你只需要从httpd.conf文件去掉这个模块行。
启用这个模块后,你的服务器准备好提供压缩的内容。但是,服务器只有当它接收到来自客户端的相应头文件时,才会创建压缩内容。所以,现在你需要将下面的代码放置到你网站的htaccess文件,才能通知服务器提供压缩的内容。
.HTACCESS代码
# force deflate for mangled headers
# developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)s*,?s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
FilterDeclare COMPRESS
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf
FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype
FilterChain COMPRESS
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
# Legacy versions of Apache
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml
AddOutputFilterByType DEFLATE application/atom+xml
AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font-ttf font/opentype
将上面的代码放置在你的htaccess文件之后,看看你网站的请求头部。你可以看到一个额外的头“Accept-Encoding“。这意味着请求的客户端能够处理给定的压缩类型的内容,并将提供压缩内容。
Accept-Encoding:gzip,deflate,sdch
结果
看看下面的图片,有多少被压缩了。
GZip <wbr>和 <wbr>deflate压缩
结论
我强烈建议你把网站静态内容做压缩处理,因为没有理由不这么做,这是Web开发的一个最佳实践。
文章系转载!
- GZip 和 deflate压缩
- .NET GZIP,deflate压缩(转)
- ActionFilterAttribute之CompressFilter,GZIP,DEFLATE压缩
- C# GZip、Deflate 压缩解压算法函数
- [原]Nodejs关于gzip/deflate压缩
- C# Deflate、GZip压缩与解压缩
- HttpClient自动处理Gzip,Deflate压缩
- gzip,zip压缩格式和png图像格式的本质压缩算法----DEFLATE及其实现:zlib
- 让网站打开速度更快技巧:开启gzip和deflate压缩
- GZip、Deflate压缩算法对应的C#压缩解压函数
- Web服务器处理HTTP压缩之gzip、deflate压缩
- Web服务器处理HTTP压缩之gzip、deflate压缩
- Web服务器处理HTTP压缩之gzip、deflate压缩
- Web服务器处理HTTP压缩之gzip、deflate压缩
- Web服务器处理HTTP压缩之gzip、deflate压缩
- 如何用HttpWebRequest下载gzip, deflate压缩的页面
- 如何用HttpWebRequest下载gzip, deflate压缩的页面
- web中gzip,deflate的压缩与解压
- Qt好书推荐
- linux上安装Qt
- 华为上机练习题--判断某数字是否是回文数字
- arm嵌入式linux qt入门问答,很经典!!
- 79款 C/C++开发工具开源软件
- GZip 和 deflate压缩
- 【Busybox】inittab详解
- 板鸭豆子红辣椒袋鼠的世界杯
- 黑马程序员-java自学笔记01之IO字符流写入和读取
- FragmentActivity+FragmentTabHost+Fragement替代TabActibvity+TabHost+Activity
- 螺丝、淤泥和跳蚤
- 鳄鱼和椰子
- FadeIn and FadeOut
- 黑马程序员---java基础之网络编程