哪些浏览器处理“ Content-Encoding:gzip”,哪些浏览器对编码质量有特殊要求?


44

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


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

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

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

Answers:


49

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

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

如您所见:在将近15年的时间里,有完整的支持,并且没有人使用超过15年的旧浏览器。


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

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

2
@Su'是正确的-任何支持gzip的浏览器都将发送Accept-Encoding标头,因此您无需确切关心哪些浏览器支持此功能。当他们告诉您可以接收时,请发送gzip。
DisgruntledGoat

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

1
@QFDev(如果要提供静态文件),可以创建一个gzip压缩版本,一个不是gzip压缩版本,然后检查accept-encoding / gzip并相应地更改提供的静态文件。
JordanReiter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.