您尝试查看的页面无法显示,因为它使用了无效的或者不支持的压缩格式
最近遇到一个问题,甚是奇怪,现记录在此,希望能帮到有需要的兄弟。
事情是这样的,在一个自己实现的开放框架中,因为接口返回的数据量会比较大,
因此根据请求支持的解压缩格式实现将数据压缩后输出,在使用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,倒也没有大碍。
虽然影响不大,还是忙活了大半天,浏览器兼容还真是一丝一毫不能差啊,:)