您尝试查看的页面无法显示,因为它使用了无效的或者不支持的压缩格式

最近遇到一个问题,甚是奇怪,现记录在此,希望能帮到有需要的兄弟。

事情是这样的,在一个自己实现的开放框架中,因为接口返回的数据量会比较大,
因此根据请求支持的解压缩格式实现将数据压缩后输出,在使用firefox和chrome
测试接口时返回“您尝试查看的页面无法显示,因为它使用了无效的或者不支持的
压缩格式。”的错误,但使用ie测试没有问题,经过分析其他门户网站的页面请求
和返回数据,发现是response header赋值错误;具体原因是这样的,当我们返回
的数据格式是经过压缩以后的,需要在header中指出压缩的格式,如gzip,或者
deflate,因为请求时浏览器过来的accept-encoding是“gzip,deflate”,因此返回
的content-encoding也赋值了“gzip,deflate”,

ContentEncoding="gzip,deflate";

ie是能够正确识别的,但另外的浏览器不能全部识别,必须根据具体的压缩格式赋
值为“gzip”或者“deflate”,

ContentEncoding="gzip";
或者
ContentEncoding="deflate";

由此可以推断出ie是判断是否包含gzip或者deflate来判断是否使用了某种压缩格式,
而另外的浏览器明显是通过全字符匹配的方式来判断的。不过,如果接口是我们
自己使用,只要我们知道并能识别这个content-encoding,倒也没有大碍。

虽然影响不大,还是忙活了大半天,浏览器兼容还真是一丝一毫不能差啊,:)

posted @ 2017-04-18 14:23  bcbr_wang  阅读(1523)  评论(0编辑  收藏  举报