deflate——过时的网页压缩格式,最好禁用[转]

在设置GZip时,发现同时有个Deflate压缩设置,一开始并不了解Deflate压缩,于是便在启用GZip的同时,也启用了Deflate压缩。虽然同时设置GZip和Deflate压缩,并不影响网站的正常运行,并且在检测网站是否启用GZip时,返回的答案是已启用。但是我们能否不设置Deflate压缩呢?或者来说,需要禁用Deflate压缩呢?Deflate压缩又有什么好处和坏处?带着这一堆疑问,我今天查了一些资料,大概了解了一些,最后得到的结论是:DEFLATE——过时的网页压缩格式,最好禁用。

了解GZip和deflate

GZIP,好像是一个不透明的或原子的功能。事实上,HTTP定义了一种机制,一个Web客户机和Web服务器同意一压缩方案可以用来发送内容,这由使用Accept-Encoding和Content-Encoding标头完成。有两种常用的HTTP压缩:DEFLATE和GZIP。

DEFLATE是一个无专利的压缩算法,它可以实现无损数据压缩,有众多开源的实现算法。该标准的实施库大多数人用的是zlib的。zlib库提供用于压缩和解压缩使用DEFLATE/INFLATE的数据。zlib库还提供了一种数据格式,混淆的命名ZLIB,它包装DEFLATE压缩数据,具有报头和校验和。

GZIP是使用DEFLATE进行压缩数据的另一个压缩库。事实上,GZIP的大多数实现实际使用zlib库的内部进行DEFLATE/ INFLATE压缩操作。GZIP产生其自己的数据格式,混淆的命名GZIP,它包装DEFLATE压缩数据,具有报头和校验和。

早期浏览器对DEFLATE压缩描述混乱

HTTP/1.1 RFC(超文本传输协议HTTP/1.1版)在为Accept-Encoding和Content-Encoding标头描述允许的压缩方案时做得不好,它定义了Content-Encoding:gzip,该响应体由使用GZIP数据格式(GZIP标头,压缩数据,和校验和)组成。它还定义 Content-Encoding:DEFLATE,但是,尽管它的名字,这并不意味着响应体是DEFLATE压缩数据的原始块。根据RFC-2616,DEFLATE和Content-Encoding:DEFLATE,实际上意味着响应体是由zlib的格式(zlib的头,压缩数据和校验)组成的。

这种“DEFLATE的标识并不意味着原始DEFLATE压缩数据”的想法是相当混乱的。早期版本的Microsoft的IIS Web服务器被编程为返回原始DEFLATE压缩数据的Accept-Encoding::deflate要求,而不是一个zlib的格式的响应。而在与Content-Encoding时期望的响应自然版本的Internet Explorer:DEFLATE标头有原始DEFLATE响应主体。

Mark Adler,zlib的作者之一,介绍说:

早期的微软服务器会错误地提供“Deflate”的原始压缩(例如RFC1951的数据没有RFC1950的zlib包装)。这导致的问题是,浏览器不得不去试一下两种方式,在最后它只是使用更可靠的GZIP。

现在浏览器对DEFLATE压缩处理不好

如Mark所说,浏览器收到Content-Encoding后,压缩必须处理两种可能的情况:响应主体是原始DEFLATE数据,或响应主体是zlib包装过的DEFLATE响应。那么,现代浏览器处理DEFLATE或zlib包装过的DEFLATE响应效果有多好?Verve工作室测试了一个庞大的浏览器数量,结果并不好。

表中的部分结果意味着浏览器处理原始DEFLATE或zlib包装过的DEFLATE不一致,这其实是另一种说法“它被破坏了,功能不正常了。”这似乎是一个棘手的错误,而浏览器创造者不断重新引入到他们的产品中。 Safari浏览器5.0.2?没问题。 Safari浏览器5.0.3?彻底失败。 Safari浏览器5.0.4?没问题。 Safari浏览器5.0.5?不一致和被破坏。

发送原始DEFLATE数据不是一个好主意,正如马克说,“[它]只使用更可靠的GZIP。”

还应该注意的是,所有支持DEFLATE的浏览器都支持GZIP,但不是所有支持GZip的浏览器都支持DEFLATE。有些浏览器,如Android,在它们的Accept-Encoding请求头不包含deflate压缩。由于你不得不配置你的Web服务器使用GZIP,你还不如避免Content-Encoding: deflate。

禁用DEFLATE

幸运的是,避免DEFLATE并不那么困难。

Apache处理所有HTTP压缩的模块是mod_deflate模块。尽管它的名字,mod_deflate模块根本不支持deflate。要得到一个发送原始DEFLATE或zlib包装过的DEFLATE的Apache2版本是不可能。 Nginx的,如Apache,不支持deflate的,它只会发送gzip压缩的响应,发送Accept-Encoding:deflate请求头将导致未压缩的响应。

微软的IIS Web服务器可以同时发送gzip和deflate的响应,你可以分别启用或禁用每个方案。对于IIS6,你可以编辑metabase来禁用DEFLATE支持。对于IIS7,您可以通过编辑.config 文件里的 <httpCompression>元素的<schemes>的DEFLATE压缩方案部分禁用DEFLATE。

如果你的Web服务器发送压缩的DEFLATE内容,无论免费还是商业的产品都具有内置的检测,“过时的压缩格式”。

检测网页使用GZip还是deflate压缩

检测网页使用使用GZip还是deflate压缩,可以借助一些在线工具,例如卡卡网的GZip压缩检测(http://pagespeed.webkaka.com/youhua/gzip/)。

GZip压缩检测

需要特别注意的是,GZip压缩是按文件分别压缩的,并不是检测到网页启用了GZip,所有文件就全部启用GZip了。很多情况下,网页启用了GZip,但发现JS文件并没有启用GZip,这是因为设置不当而造成的。

如何知道网页的哪些文件启用了GZip,哪些文件还没有启用GZip?可以借助卡卡网的网站速度诊断工具(http://pagespeed.webkaka.com/),一键查看。例如,看看下面的检测结果:

html网页已经成功启用了GZip压缩

css文件未成功启用GZip压缩

这是因为,启用GZip压缩时只对html网页有效,而对其他文件如css没有生效。

时间: 2024-08-02 10:26:23

deflate——过时的网页压缩格式,最好禁用[转]的相关文章

Apache网页优化之网页压缩

Apache网页压缩技术 实验介绍:本实验在虚拟机的Linux系统上搭建http-2.4.2,并在配置过程中开启mod_deflate模块,实现网页的压缩功能,最终通过fiddler抓包工具,验证mod_deflate压缩是否生效. 1.首先将搭建httpd服务所需要的软件包拷贝到虚拟机Linux系统中. ![] 2.将软件包解压到指定的目录中. 3.将apr-1.4.6和apr-util-1.4.1解压完的文件夹,拷贝到/httpd-2.4.2/srclib并分别重新命名为apr.apr-ut

[超详细] Apache网页优化:网页压缩与网页缓存超详细

前言 前两篇文章讲了Aapche的访问控制与日志分析,这篇文章会重点讲Apache的网页优化,比如:网页的压缩.网页的缓存.我们在使用Aapche作为Web服务器的过程中,只有对Aapche服务器进行适当的优化配置,才能让它发挥出更好好的性能,因此,我们需要对Aapche服务器的配置优化! 网页压缩 凡是总会有个为什么,我们为什么要对网页进行压缩,带着这个问题来看接下来的操作.我们也常常上网,会知道网站的访问速度的快慢有很多因素,比如:应用程序的响应速度.网络带宽.服务器性能等!最重要的一个因素

Apache网页优化与安全优化(网页压缩;网页缓存;网页防盗链;隐藏版本信息)

1,网页压缩 网站的访问速度是由多个因素所共同决定的包括: 1)应用程序的响应速度 2)网络带宽 3)服务器性能 4)与客户端之间的网络传输速度等等 其中最重要的就是Apache本身的响应速度,因此提升网站性能第一个需要着手进行处理的便是尽可能地提升Apache的执行速度,使用网页压缩可以提升应用程序的速度,而且不需要任何成本. Apache的压缩模块 Apache2.x内建了mod_deflate这个模块,使用gzip压缩算法.mod_deflate可使用DeflateCompressionL

Apache网页优化—网页压缩

Apache网页与安全优化 Apache网页优化 1.网页压缩2.网页缓存 Apache安全优化 1.配置防盗链2.隐藏版本信息 Apache网页优化概述 1.在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代 2.为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容 3.优化内容 配置网页压缩功能工作模式的选择与参数优化配置防盗链配置隐藏版本号 gzip介绍

Apache网页优化(一)-------- 网页压缩与缓存

Apache网页优化概念 在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代,为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容. 优化内容: 配置网页压缩功能 配置网页缓存时间 配置防盗链 配置隐藏版本号 gzip介绍 配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器. 作用 降低了网络传输的字节数,加快网页

apache 开启Gzip网页压缩

网页gzip压缩是个什么概念呢?如果你还没接触到,讲文字全是废话,先来看两张图看着实在: 网页压缩前: 网页压缩后: 从图中就可看出网页压缩后这加载时间是成倍的缩减,下面就是就是要讲解如何开启gzip压缩: 实例环境: 服务器:centos6.5 apche:2.2.15 gzip压缩需要 deflate_module和headers_module的支持:系统默认就是开启的:需要做的是在httpd.conf配置项添加规则; [[email protected] conf]# vim /etc/h

Apache网页压缩

压缩功能概述      配置 Apache 的网页压缩功能,是使用 Gzip 压缩算法来对 Apache 服务器发布的网页内容进行压缩后再传输到客户端浏览器. 网页压缩的优势     加快网页加载的速度,改善用户的浏览体验     降低网络传输带宽,服务器节省流量     网页压缩有利于搜索引擎的抓取 网页压缩模块分类       Apache 能实现网页压缩功能的模块有 mod_gzip 模块和 mod_deflate 模块.Apache1.x 系列没有内建的网页压缩技术,但可以使用额外的第三

tomcat优化之启用gzip网页压缩加快网站访问速度

现在随着搜索引擎的升级,现在更加注重网站用户体验.对于广大站长朋友来说网站的速度甚至比内容还要重要.因为如果客户访问你的网站一直打不开,就算网站的内容很优秀,相信没有多少人会耐心地等待.所以提高网站访问速度是非常必要和重要的.今天笔者就跟大家分享一下如何开启Tomcat服务器的Gzip网页压缩功能,来提高网站访问速度. 首先,介绍一下Gzip压缩技术以及优势 所谓GZIP压缩技术最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩.我们在Linux中经常会

创建GZIP压缩格式的HIVE表

[Author]:  kwu GZIP为Linux系统中最常用的压缩格式,创建GZIP压缩格式的HIVE表具体步骤如下. 1.以 STORED AS TEXTFILE 为存储格式创建HIVE表 CREATE TABLE TRACKLOG (DATEDAY STRING COMMENT "日期",IP STRING COMMENT "IP",COOKIEID STRING COMMENT "用户COOKIE",USERID STRING COMME