压缩算法专门针对HTML内容进行了优化?

hma*_*son 7 html compression algorithm

是否有任何压缩算法 - 有损或无损 - 已经专门用于处理真实世界(混乱和无效)的HTML内容?

如果没有,我们可以利用什么特性来创建这样的算法?潜在的性能提升有哪些?

此外,我不是要问这个问题(通过Apache或任何其他服务器),虽然这当然很有趣,但存储和分析它.

更新:我不是指GZIP--这是显而易见的 - 而是一种专门用于利用HTML内容特征的算法.例如,可预测的标记和树结构.

Rya*_*ton 5

Brotli是一种专门的 HTML/英语压缩算法。

资料来源: https: //en.wikipedia.org/wiki/Brotli

与大多数通用压缩算法不同,Brotli 使用预定义的 120 KB 字典。该词典包含来自大量文本和 HTML 文档的 13000 多个常用单词、短语和其他子字符串。[6][7] 预定义的字典可以提高短数据文件的压缩密度。


mjv*_*mjv 4

我不知道针对 HTML 内容明确优化的“现成”压缩库。

\n\n

然而,HTML 文本应该可以通过通用算法很好地压缩(请阅读此答案的底部以获得更好的算法)。通常,由于特定语言习语的高度重复性,Lempel\xe2\x80\x93Ziv的所有变体在类 HTML 语言上都表现良好;GZip经常被引用使用这种基于 LZ 的算法(我认为是 LZ77)。

\n\n

改进这些通用算法的一个想法可能是使用最常见的 html 标签和模式来填充 LZ 类型的循环缓冲区。以这种方式,我们可以通过使用来自此类模式的第一个实例的引用来减少压缩大小。这种增益对于较小的 html 文档尤其敏感。

\n\n

一个互补的、类似的想法是让压缩和解压缩方法隐含(即不发送)LZ-x 算法的其他压缩算法的信息(例如 LZH 等情况下的霍夫曼树),特定于典型 HTML 的统计数据要小心地从字符计数中排除由引用编码的字符的[统计加权]实例。这种经过过滤的字符分布可能会比完整的 HTML 文本更接近纯英语(或目标网站的国家语言)。

\n\n
\n\n

与上述[受过教育的,我希望]猜测无关,我开始在网上搜索有关此主题的信息。

\n\n

\'找到了这篇2008年的学术论文(pdf格式),作者是弗罗克大学的Przemys\xc5\x82aw Skibi\xc5\x84ski\xc5\x82aw。该论文的摘要表明,在压缩速度相当的情况下,比 GZIP 提高了 15%

\n\n

否则我可能会找错地方。似乎对此没有太大兴趣。可能只是相对于简单或适度调整的通用算法而言,额外的增益被认为不足以引起这种兴趣,即使是在支持网络的手机的早期(当时带宽非常昂贵)。 ..)。

\n