chrome支持sdch压缩,另外不再支持bzip2压缩
本文按署名·非商业用途·保持一致授权作者:
,发表于2010年05月06日08时36分
今日更新了chrome,发现其不再支持bzip2压缩格式。另外新增加了对sdch的支持。
我之前没了解过sdch,刚刚通过google大致了解了一下。下面就说说基本的请求过程,本文并不打算做深入的说明(实际上我也没法谈得深入,因为根本不了解技术细节)。
我本来只是想在twitter上发一两句话的,但是不知道为什么twitter的那个按钮好像出了一些问题,换了浏览器也不行,而我又没有web之外的发布工具。于是稍微把打算发twitter的废话扩展一下,发了一篇博客。希望看到我这篇博客的读者里,有人会因此而发起一些项目,例如sdch for nginx,我便可以坐享其成了。(阿,我发现我的废话实在是不少)
sdch可以利用多个请求里相同的数据进行压缩。例如大多数网站具有相同的头尾以及那些内联的css, javascript,这些都可以避免在多次请求里被重复下载。看起来似乎比传统的gzip只针对单次请求压缩好,但是是不是会带来更复杂的服务器端的开发?例如可能需要把不同的资源区分开来,因为数据样本比较唯一的资源是不适用于sdch的。
sdch主要分成三部分:首次请求;下载字典;其他请求。
—————————
首次请求
客户端:
Accept-Encoding: sdch
服务器端:
Get-Dictionary: /path/to/dict
—————————
下载字典
客户端根据Get-Dictionary的值来下载字典,普通的HTTP请求。
————————–
其他请求
客户端:
Accept-Encoding: sdch
Avail-Dictionary: xxxxx
服务器端:
根据Avail-Dictionary的值来进行sdch编码,如果Accept-Encoding里有gzip,这些数据还会被gzip压缩。之后返回。

2010-05-12 01:20:02
[...] 在HTTP1.1(rfc2616)中,定义了三种内容编码格式(Content Codings),即压缩算法:gzip、compress和deflate,但大多数浏览器只支持gzip和deflate。在实际使用中,目前Google Chrome支持sdch,不再支持bzip2。 [...]