我想知道压缩相对较小的字符串(介于1到10kb之间)以存储在服务器上.服务器和接收客户端应用程序在实际请求期间将不会使用我选择的压缩.压缩将仅用于节省服务器上的存储空间.
在这种情况下,真的需要使用带有标题的gzip吗?我可以使用放气吗?因为我知道所有情况下字符串的编码,甚至可能压缩原始数据?
我反对deflate的#1参数是浏览器中的实现不一致,但是在我看来,这无关紧要.
我的想法有误吗?
如果在这里deflate是gzip的可行替代方法,那么deflate raw怎么办?
解决方法:
首先是一些术语.放气是指原始放气格式,如RFC 1951中所述.因此,“放气”和“放气原始”之间没有区别.您可能会想到错误命名的“ deflate” HTTP编码,实际上不是deflate而是zlib,如RFC 1950中所述.
其次,将小字符串压缩为独立的,可解压缩的文件(似乎在暗示您的意思)在大多数情况下会导致压缩效果较差.您应该将这些字符串以及所需的任何结构连接起来,以便能够再次将它们拉开,至少达到大约1 MB的水平,并对它们进行压缩.您没有说过以后要如何访问这些字符串,在这种方案中需要考虑这些因素.
第三,即使在1 KB到10 KB范围内压缩小字符串时,gzip,zlib和deflate之间的差异在占用的空间上也可以忽略不计.三种格式的头和尾分别占18字节,6字节和0字节.因此,如果您担心的是空间,那么离开gzip并不会带来什么好处.
第四,在压缩时不计算CRC-32或Adler-32校验值(分别在gzip和zlib中使用)可能会具有较小的速度优势,但是与花费的压缩时间相比,它可以忽略不计.