IE6上Gzip+Etag问题的解决方案
来源:互联网 发布:office for mac怎么用 编辑:程序博客网 时间:2024/05/17 04:29
http://www.blogjava.net/emu/archive/2011/02/27/345262.html
这个问题不是太广为人知,但也算不上新鲜知识了,IE6如果接收到一个gzip压缩的http响应,那么这个响应中的Etag信息会被抛弃,此时只能依赖last-modified时间来设计cache策略。某些类型的Vary值据说也会导致相同的问题。
为了这个问题emu在http头上动了n多手术,甚至把200响应状态硬生生换成206等状态,IE6一直都非常顽固的不肯吐出If-None-Match信息。几乎要放弃了。
丢开这个bug,我们来看问题的实质是什么。实质是,我们有一个叫做Etag的,响应内容的一个hash值,需要在响应的时候从服务器送给浏览器,并且要求在浏览器下次请求同一个路径的时候把这个hash值送回给服务器校验。http中规定了,我们可以在http header内容中通过一个叫做Etag的header来做这个事,但是现在浏览器不给力啊,有啥别的手段可以做相同的事情呢?
因此需要做的事情就是,server在发现User-Agent是IE6的时候,在返回gzip内容的时候出了要送Last-Modified时间之外,不要送Etag头了,改为返回一个set-cookie头:
Set-Cookie: etag=hash; pagh=/mypath
服务器在下次收到请求的时候,如果收到了If-Modified-Since信息,表明客户端有一份当前请求的cache,就可以从cookie里面验证etag值来决定是否返回304拉!
- IE6上Gzip+Etag问题的解决方案
- IE6上Gzip+Etag问题的解决方案
- IE6遇到Nginx的gzip问题
- 关于ETag和Gzip的基本认知和使用
- ie6下png阴影问题的解决方案
- IE6浏览器中的gzip压缩输出问题
- 修复IE6 PNG不透明问题的最佳解决方案
- 一个修复IE6 PNG不透明问题不错的解决方案
- IE6下载文件名过长导致乱码问题的解决方案
- ie6 span 换行IE6中float:right换行问题的替代解决方案
- ie6 span 换行IE6中float:right换行问题的替代解决方案
- Silverlight 2.0在IE6 SP2上的虚线边框问题
- ETag与Last-Modified头信息用途上的区别
- IE6 躲猫猫BUG的解决方案
- IE6 fixed的完美解决方案
- IE6 不兼容的解决方案
- IE6 调用gzip压缩后JavaScript不执行的解决方法
- ie6对nginx经过gzip的数据无法显示
- RTSP协议
- winform利用委托实现窗体间传值
- 好像是第一次在公司外的论坛上公开演讲
- 实现显示效果(只要是自动适应宽度)同span并能传入后台的方法
- Firefox的getter和setter带来的安全隐患
- IE6上Gzip+Etag问题的解决方案
- Mysql workbench 首页的功能图
- 学习笔记16—交通灯管理系统
- _STDC _cdecl
- 用友BQ正式发布移动版 企业级BI同样可如此性感
- 天才图灵
- JAVA高级工程师知识树
- Oracle中的NULL
- 解决在有base href 时location ie/ff处理不同问题方法