1
kikyous 2015-10-14 11:55:05 +08:00
gzip 为什么对图片不适应
|
2
chzyer 2015-10-14 12:09:00 +08:00
这里的 gzip 其实只是端对端的传输压缩而已
|
3
sincway 2015-10-14 12:14:26 +08:00 via iPhone
不适用是有的格式已经压缩到极限了,再压一次效果不明显,不代表不能用。
|
4
ctexlive 2015-10-14 14:09:36 +08:00
gzip 难道不是传输时对数据包的压缩妈?怎么可能专门在存储的时候压缩一张图片保存?
|
5
chairuosen 2015-10-14 14:14:40 +08:00
因为图片的压缩率比较高,所以 gz 并没有啥效果还浪费 CPU 。所以才不建议的
|
6
zhicheng 2015-10-14 14:29:24 +08:00
可能会增加尺寸。
|
7
neilwong 2015-10-14 15:10:15 +08:00
不想用 gzip ,请求图片的时候把 Accept-Encoding : gzip 这个头去掉不就行了嘛
|
8
Themyth 2015-10-14 15:39:38 +08:00
我觉得阿里云在后台只不过是 text/html 而已,人家不是故意的
|
9
jimrok 2015-10-14 16:12:54 +08:00 3
感觉是阿里云的小白干的事,又浪费 cpu ,又增加了传输大小。目前的图片压缩算法 JPG 改进的余地很小,减少尺寸唯有降低质量和大小, gzip 上去包一层不能压缩的东西,既浪费他们的 cpu ,又浪费用户的 cpu 。
|
12
jimrok 2015-10-16 22:42:30 +08:00
@maxsec 把 1 这个值表示称 bit 最少要一个 byte 。这个 byte 压缩一下,看看你压缩完的内容能不能小于 1 个 byte 。
|
14
jimrok 2015-10-19 11:45:58 +08:00
@maxsec 你需要了解一下压缩的原理,我们已经使用了个种算法来提高压缩率,我们不论怎么努力,也能将一个信息压缩没,因为信息墒总是存在的,压缩不能减少这个墒。只是重新排列他们的位置。 jpg 格式已经在这方面做的够好了,几乎没有其他的算法超过 jpge 的。你用 gzip 再压缩,得到的就是 gzip 的壳大小+图片大小。除非你的图片时 bmp 这种没压缩格式, gzip 会有效果,压缩率肯定比不上图片格式的压缩率。
|
15
maxsec 2015-10-20 11:19:50 +08:00
@jimrok 我想请问下作为一个云储存或者 CDN 应该关心用户上传的内容是啥吗? NO.
为什么? 首先,假如用户上传.JPG 结尾的内容,但其内容是纯文本的, 这种情况会经常存在。 应不应该开启哩? 业内统一的标准都是这样, S3 也是这样。 --- 回到题主的问题, CDN 做不做 GZIP ,往往是尊重源站的设定。源站对 JPG 开启了 GZIP , CDN 也会保留此头。 |
16
maxsec 2015-10-20 11:20:44 +08:00
既然不会增大体积,在现今单位计算成本并不高的时代,开启或不开启,我更倾向于开启。
|
17
jimrok 2015-10-20 13:57:20 +08:00
"假如用户上传.JPG 结尾的内容,但其内容是纯文本的",你这个假定的比例多大,会不会让 cdn 的数据中心一年多消耗 20%的电力?
|
18
akira 2015-10-23 13:57:05 +08:00
cdn 其实是恨不得全部都不做 gzip 的。。。
|
19
qhxin 2015-12-18 21:49:10 +08:00 1
铜币收好
|