HTTP协议之Content-Encoding - 天下无贼 - 51CTO技术博客

HTTP协议之Content-Encoding

2011-09-17 12:04:37

标签:Gzip deflate 职场 休闲
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://guojuanjun.blog.51cto.com/277646/667067

Content-Encoding是HTTP协议的响应报文头,一般形式如:

Content-Encoding:gzip,deflate,compress

Content-Encoding的说明中指出deflate指的是在RFC1950说明的zlib格式。也就是说当Content-Encoding为deflate时,内容应该为zlib格式。

compress具说chrome支持,但还没见到哪个web服务器支持

gzip,deflate,zlib的关系:

deflate(RFC1951):一种压缩算法,使用LZ77和哈弗曼进行编码; 
zlib(RFC1950):一种格式,是对deflate进行了简单的封装; 
gzip(RFC1952):一种格式,也是对deflate进行的封装.

可以看出deflate是最核心的算法,而zlib和gzip格式的区别仅仅是头部和尾部不一样,而实际的内容都是deflate编码的,即:
gzip = gzip头(10字节) + deflate编码的实际内容 + gzip尾(8字节)

[GZIP的实现可参考GzipOutputStream.java]
zlib = zlib头 + deflate编码的实际内容 + zlib尾

访问www.163.com. 响应报文含有gzip头,而www.baidu.com的响应报文没有gzip头。

看到gzip大家都很好的支持,有无gzip头都没有问题。

(以下内容本人未做验证)

对deflate即zlib格式:

那么在IE上面是打不开页面的,包括IE6,IE7,IE8,提示为一片空白或者出错。但是在其他的浏览器如Firefox,Chrome,Opera等上面都能正常打开。要让IE能够正常打开页面,内容必须是deflate原始格式的数据,即去掉zlib头和zlib尾。不知道IE为什么不修改这个 Bug,按理说在IE6就出现的这种很简单的问题,IE8不应该出现才对。
为了照顾IE,只好在压缩deflate的时候去掉zlib头和zlib尾,还好其他的浏览器也都能正常处理这种原始的deflate格式。

本文出自 “天下无贼” 博客,请务必保留此出处http://guojuanjun.blog.51cto.com/277646/667067

HTTP协议之Content-Encoding - 天下无贼 - 51CTO技术博客相关推荐

  1. python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客

    python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客 python脚本监控网站状态 2013-01-09 09:21:02 标签:监控 python 原创作品,允许转载,转载时请 ...

  2. Maven问题总结 - 3 - 技术改变生活商业成就梦想 - 51CTO技术博客

    Maven问题总结 - 3 - 技术改变生活商业成就梦想 - 51CTO技术博客 Maven问题总结 - 3 - 技术改变生活商业成就梦想 - 51CTO技术博客 Maven问题总结 - 3 2010 ...

  3. (2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客

    (2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客 (2006, 'MySQL server has gone away ...

  4. 有关网页抓取问题的一些经验总结 - passover【毕成功的博客】 - 51CTO技术博客

    有关网页抓取问题的一些经验总结 - passover[毕成功的博客] - 51CTO技术博客 有关网页抓取问题的一些经验总结 2011-05-05 18:07:38 标签:爬虫 网页抓取 在写爬虫的时 ...

  5. HAproxy - 铁钉 - 51CTO技术博客

    HAproxy - 铁钉 - 51CTO技术博客 HAproxy 2009-11-30 14:24:37 标签:HAproxy 休闲 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出 ...

  6. 今天正式开通51CTO技术博客

    今天正式开通51CTO技术博客,今后会把自己工作和学习过程中的点点滴滴记录在此博客中! 转载于:https://blog.51cto.com/dashuai/1160235

  7. 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客

    自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansib ...

  8. CentOS 6.4下安装和配置Samba - 行知小筑 - 51CTO技术博客

    CentOS 6.4下安装和配置Samba - 行知小筑 - 51CTO技术博客

  9. Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover【毕成功的博客】 - 51CTO技术博客...

    Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover[毕成功的博客] - 51CTO技术博客

  10. 51CTO移动客户端可以在线下载安装啦 - 51CTO博客开发 - 51CTO技术博客

    51CTO移动客户端可以在线下载安装啦 - 51CTO博客开发 - 51CTO技术博客 51CTO移动客户端可以在线下载安装啦 - 51CTO博客开发 - 51CTO技术博客 51CTO移动客户端可以 ...

最新文章

  1. GitHub与Git入门
  2. Mestasploit 客户端渗透
  3. [Github]watch和star的区别
  4. 爱数的诗和远方:云端数据运营服务
  5. 微软向马斯克的人工智能项目OpenAI投资10亿美元
  6. 两者相差百分比怎么算_相差200元!小米11和iQOO 7谁更值得买?说说真实想法
  7. [JavaWeb-JDBC]JDBC_快速入门_idea jdbc连接Mysql数据库
  8. js转json工具_菜鸟丨Egert3D微信小游戏发布与Unity工具使用
  9. 专业音频如何把电平转换成dbu_谭俊峰|录课、买麦,你应该了解的音频常识
  10. 今天的解放过后的蜡笔小新
  11. CSS样式之内容居中方法
  12. ORACLE时间常用函数(字段取年、月、日、季度)
  13. vscode-设置tab转空格数4为2
  14. 安徽大学836数字电路与逻辑设计考研历年真题库资料
  15. 漏洞挖掘 符号执行_漏洞挖掘综述
  16. MT6577/MT6589处理器参数对比分析
  17. java 多余的空格_Java去除字符串多余空格以及首尾空格
  18. WC2015简短感想
  19. 一年期早过:Windows 10免费升级漏洞仍然敞开着
  20. 各大网站瀑布流简析与建议

热门文章

  1. mysql 如何抓慢查询_如何进行 MySQL慢查询 操作
  2. java sql注入 过滤器_java 过滤器filter防sql注入 | 学步园
  3. php mysql占位符_php中的占位符
  4. Linux内核中的延时函数
  5. 分析arm Internal error: synchronous external abort: 96000010 [#1] PREEMPT SMP
  6. matlab cat函数_MATLAB的Categorical数组
  7. InstantiationException in hadoop map reduce program
  8. 唯一分解定理 详解(C++)
  9. pycharm python脚本如何调试_Pycharm调试程序技巧小结
  10. python初级工程师面试题_Python工程师面试题