在Firefox中,我们可以自定义HTTP标头的默认值,例如更改HTTP请求中的“Accept-Encoding”标头(在浏览器中键入“about:config”,并在首选项“network.http.accept”中搜索-encoding“,你可以双击这个值并自定义它。”
这可以在Internet Explorer中实现吗?
最近我们遇到了一个问题,我们的网络应用程序没有在IE6中加载 进一步挖掘问题表明,从IE6发送的所有HTTP请求中都缺少“Accept-Encoding”标头。因此,服务器响应所有javascript文件请求的404“未找到”错误,因为空间限制我们只维护jzip文件的gzip压缩版本。
如果IE中有一个选项指定“Accept-Encoding”标头的值以便它作为每个请求的一部分发送,请告诉我?
答案 0 :(得分:2)
@tialaramex:微软确实在IE7中大量重写了解压缩代码,但据我所知,IE6中解压缩的所有问题都已修复补丁。
@Naga:如果您在工具/互联网选项/高级中启用了“使用HTTP / 1.1”,IE将发送Accept-Encoding标头,如果您没有,则不会发送。
但是,你的设计会破坏现实世界,而且它与IE6无关。如果您阅读Steve Souders的书“Even Faster Websites”,您将了解到如果找到,各种公司代理和本地安全产品将剥离Accept-Encoding标头。因此,如果您只愿意返回压缩内容,则可能会导致您的网站中断。
(回答你的实际问题,不,没有配置设置允许你发送任意头。在IE中可靠地添加自定义头实际上是非常困难的,并且通常涉及编写一个异步可插入协议包装器,它会导致性能惩罚。)
答案 1 :(得分:1)
谷歌搜索建议您不要将压缩数据发送到IE6,因为it can cause corruption and other mysterious problems.(毫无疑问,您可以自己搜索并找到更多这样的数据)
微软似乎不止一次“修复”了这个问题(例如,它在IE6 SP1中被列为已修复,并且在IE6 SP2中再次出现,但用户继续报告IE6 SP2中的问题,这表明他们不知道究竟是什么错误,很可能只是撕掉了所有相关代码,并在IE7中批发替换。
因此,如果网络应用程序必须在IE6中工作(我可怜你),那么你可能想要支付所有文件的未压缩版本的价格。或者,您可以在Web应用程序中添加一个过滤器,为IE6用户动态解压缩gzip文件。这将使IE6用户更加耗费CPU并降低服务速度,但仍可节省磁盘空间。