Python zlib在HTTP响应中无法解码

5 投票
4 回答
1330 浏览
提问于 2025-04-15 16:37

我正在使用亚马逊的S3服务来提供静态文件。当文件的内容类型是'text/css',而我没有对文件进行压缩时,返回是正常的。如果我尝试使用zlib.compress()来压缩内容,并把内容编码设置为'gzip',浏览器就无法解码这个结果。在Chrome浏览器中,出现的错误是

Error 330 net::ERR_CONTENT_DECODING_FAILED

在Safari浏览器中,

“cannot decode raw data” (NSURLErrorDomain:-1015)

有没有什么特别的设置需要在Python的zlib中做,以确保返回的结果可以被浏览器解压缩?

4 个回答

0

这个信息是可以解码的。问题在于,发送者对接收者撒谎了——这样可不是保证沟通顺畅的好办法。试着把它叫做“zlib”,而不是“gzip”。

2

gzipzlib 不是同一个东西。

5

我也遇到过同样的问题。

如果你发送这个头信息:

Content-Encoding: gzip

在Safari和Chrome浏览器中会显示错误。

但是如果你发送这个:

Content-Encoding: deflate

那么Safari和Chrome就能正确解码输入了。

撰写回答