http/1.0 and deflate/gzip

3

http/1.0是否能够处理压缩过的deflate和gzip内容? 我在我的极简Web服务器上实现了deflate和gzip,并不确定使用http/1.0的浏览器是否能够处理压缩的内容。

3个回答

6

实际上这取决于浏览器,而不是协议(HTTP 1.0可以很好地支持压缩)。

你应该检查Accept-Encoding头,它可能是gzip、deflate。如果头部不存在,则不进行压缩。


1
gzip压缩和HTTP 1.0的一个问题是,在许多情况下,您将无法使用keep-alive连接。这是由于无法使用分块传输编码,因此在gzip实时处理时应用。在这种情况下,它将仅降级为常规非持久连接。此外,如果文件已经预先进行了gzip压缩,并且服务器可以在开始时输出Content-Length头,则不会出现此问题。 - thomasrutter

4
似乎有不同的解释,关于什么是“deflate”。HTTP 1.1规定了RFC 1950(zlib)格式,但IIS生成的是原始的Deflate流。Internet Explorer无法处理RFC 1950流 - 它将deflate内容编码解释为RFC 1951 - 因此您可能要完全避免使用该格式。
.NET的DeflateStream 实现Deflate压缩算法,而不创建Zlib格式。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接