必应索引中的乱码:当zstd遇上搜索引擎爬虫
博客同时开启了zstd、gzip和br压缩,因为zstd能够做到压缩比与gzip相似的同时大幅降低CPU占用率,所以我就把默认压缩改成了zstd。我也做了兼容处理,当浏览器传送的accept-encoding不存在zstd时会回退到gzip和br,缓存也对不同的accept-encoding头做不同的响应,结果前天搜了一下网站就发现有部分网页变成乱码了。
到必应站长工具一看
这一个是正常索引的页面
按理说只要必应蜘蛛没有发送带zstd的accept-encoding请求头就不会使用zstd压缩,但是具体哪一个环节出问题了我也不知道,还是直接调回gzip默认吧。
对了,可以看看压缩率。zstd、gzip和br的压缩级别分别为6、5、4。文章1的代码块比较多。
压缩算法 | 文章1 | 文章2 |
---|---|---|
未压缩 | 309kb | 69.6kb |
zstd | 27.9kb | 17.2kb |
gzip | 39.5kb | 16.8kb |
br | 28.5 | 17kb |