我正在创建“手工制作”的HTTP 1.0、1.1服务器。我最近集成了zip lib,因此现在我可以输入和输出流式编码的gziped数据。我想知道哪些主要浏览器(有效的浏览器-IE6-IE10,Chrome,FF等)发送Accept-Encoding: deflate, gzip, ...,那么今天可以处理Content-Encoding: gzip吗?他们中的哪个对质量有期望?他们中的哪一个可以将经过编码的gzip邮寄请求和multypart / form数据发送到我的服务器?

评论

无论如何,您不应该依赖于Accept-Encoding标头吗?还是只是出于好奇而问?

@Flimzy如果要存储预先编码的文件(可以这样做以减少CPU负载,减少磁盘空间使用,提高压缩级别,或者因为要从完全静态的服务器提供文件) ,那么您就真的没有奢侈地坚持Accept-Encoding标头。如果您可以遵循标题,那么您当然应该这样做,但是由于现今对gzip的支持几乎是普遍的,因此可以建立需要gzip支持的网站。

@haydenschiff当然,您仍然可以接受accept标头。如果要存储压缩的数据,则已经准备好将其解压缩以供接受标头指示。

#1 楼

如今,基本上每个浏览器都支持deflate / gzip。此页面列出了许多浏览器和版本号。以下是摘要以及一些更新的浏览器:


Netscape 6+(Netscape 4-5确实有,但有一些错误)。
Internet Explorer 5.5+(2000年7月)和IE如果设置为HTTP / 1.1,则为4。
Opera 5+(2000年6月)
Lynx 2.6+(1999年之前的某个时间)
Firefox 0.9.5+(2001年10月)
Chrome自永远以来
自我永远以来的Safari(据我所知)

如您所见:在将近15年的时间里,它得到了全面的支持,没有人使用超过15年的浏览器。

评论


+1我有点困惑,因为这似乎是一个不存在的问题。 @ user1049847也许您需要在上面扩展您的问题?

– Su'
2011年11月19日上午10:02

除此之外,没有浏览器会发送gzip压缩请求,但几乎所有浏览器都接受gzip压缩响应。请参阅“为什么浏览器无法发送gzip请求?”在StackOverflow上。

–马可·米尔腾堡(Marco Miltenburg)
2011年11月19日上午10:18

@Su'是正确的-任何支持gzip的浏览器都将发送Accept-Encoding标头,因此您不必担心到底哪个浏览器支持此功能。当他们告诉您他们可以接收时,请发送gzip。

–心怀不满的山羊
2011年11月19日13:51

这个问题是相关的。如果您正在从Amazon S3,MS Azure和其他(如许多其他站点)提供静态文件,则将无法动态响应accept-encoding头。快速压缩也会给CPU带来额外的负担。

– QFDev
2013年9月27日在18:56

@QFDev(如果要提供静态文件),可以创建一个gzip压缩版本,一个不是gzip压缩版本,然后检查accept-encoding / gzip并相应地更改提供的静态文件。

–JordanReiter
2015年10月27日在17:18