`
cczj2008
  • 浏览: 3401 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTP协议之Content-Encoding

阅读更多
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协议Header详解.html

    HTTP协议Header详解是html帮助格式的,方便查询, 通过HTTP协议RFC2616整理的, 目录: 头域定义 2 1 Accept 2 2 Accept-Charset 4 3 Accept-Encoding 5 4 Accept-Language 6 5 Accept-Range 7 6 Age 7 7 Allow 8 8 ...

    HTTP协议详解

    它是一种通用的,无状态(stateless)的协议,除了应用于超文本传输外,它也 可以应用于诸如名称服务器和分布对象管理系统之类的系统,这可以通过扩展它的请求方法,错误代码和报头[47]来实现。HTTP的一个特点是数据...

    WindowsMobile 实现简单断点续传(源码)

    在了解HTTP断点续传的原理之前,先来说说HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种。 请求协议是由客户机(浏览器)向服务器(WEB SERVER)提交请求时发送报文的协议。回复协议是由服务器(web ...

    Http1.1超文本传输协议中文版

    Http1.1超文本传输协议中文版,目录如下: 1 引论 7 1.1 目的 7 1.2 要求 8 1.3 术语 8 1.4 总体操作 12 2 符号习惯和一般语法 13 2.1 扩充的BNF(扩充的 巴科斯-诺尔范式) 14 2.2基本规则 (basic rule) 15 3 ...

    网络应用安全技术详解.pptx

    HTTP协议工作过程-响应范例 HTTP响应范例: HTTP/1.1 200 OK  Server: Microsoft-IIS/6.0   Date: Mon, 3 Jan 2010 13:13:33 GMT Content-Type: text/HTML  Last-Modified: Mon, 11 Jan 2010 13:23:42 GMT ...

    Android GZip的使用-开发中网络请求的压缩实例详解

    从Http 技术细节上讲,就是 http request 头中 有 “Accept-Encoding”, “gzip” ,response 中就有返回头Content-Encoding=gzip 我们现在从浏览器上访问玩啥网站都是gzip格式传输的。 但是我们现在Android 客户端...

    django-eventstream:Django的服务器发送事件

    数据使用服务器发送事件协议(SSE)发送,其中数据通过永无休止的HTTP响应流式传输。 例如,您可以创建一个端点/events/ ,客户端可以通过GET请求连接到该端点: GET /events/ HTTP/1.1 Host: api.example.com ...

    oreilly-http.pocket.reference.rar_Connections_HTTP协议

    http协议详解 HTTP Pocket Reference 1. HTTP Pocket Reference 1.1 What Is HTTP? 1.2 HTTP Transactions 1.3 Client Methods 1.4 Server Response Codes 1.5 Headers 1.6 URL Encoding 1.7 Client and ...

    本项目提供的Dockerfile构建Mojo-Webqq镜像.zip

    I think this is a demand for Chinese only, so I will write the follow readme content in Chinese. if you want it change to English, please let me know. 使用Docker构建Mojo-Webqq 使用本项目提供的...

    python学习总结day04.txt

    Day03回顾 1、requests模块方法 ... 2、encoding -> res.encoding = "utf-8" 3、content -> 字节流 4、status_code -> 服务器响应码 2、数据持久化存储 1、MySQL流程 1、db = pymysql.connect("localh

    Best Http 1.9.9 for Unity

    -gzip content encoding -Basic and Digest authentication -Multiple (url-encoded and multipart/form-data) form types -Automatic redirection handling -Upload and Download progress tracking -Access your ...

    sip RFC3261 中文版

    20.12 Content-Encoding 187 20.13 Content-Language 188 20.14 Content-Length 188 20.15 Content-Type 189 20.16 Cseq 189 20.17 Date 190 20.18 Error-Info 190 20.19 Expires 191 20.20 From 191 20.21 In-Reply...

    usb3.0协议

    usb3.0接口协议 The original Universal Serial Bus (USB) was driven by the need to provide a user-friendly plugand- play way to attach external peripherals to a Personal Computer (PC). USB has gone ...

    c# http post get

    * *描 述:实现HTTP协议中的GET、POST请求 * *使 用:HttpProc.WebClient client = new HttpProc.WebClient(); client.Encoding = System.Text.Encoding.Default;//默认编码方式,根据需要设置其他类型 client....

    CANopen应用层通信协议

    This includes the data types, encoding rules and object dictionary objects as well as the CANopen communication services and protocols. In addition, this specification specifies the CANopen network ...

    cms后台管理

    D:\Tomcat 6.0\webapps\),启动tomcat,在地址栏中输入http://localhost:8080/jeecms, 您将看到第一步安装过程中的《用户许可协议》,勾选“我已经阅读并同意此 协议”,点击下一步, 接下来第二步安装过程中设置...

    SIP rfc3261 协议下载

    SIP 协议 会话初始协议 很有帮助 Contents 1 Introduction 9 2 Overview of SIP Functionality 10 3 Terminology 11 4 Overview of Operation 11 5 Structure of the Protocol 16 6 Definitions 7 SIP Messages 22 ...

    bplus-protobuf:使用TypeScript编写的符合协议缓冲区3的解析器

    BPLUS-PROTOBUF 用TypeScript编写的符合协议缓冲区3的解析器。笔记该项目由GitLab维护: ://gitlab.com/adleatherwood/bplus-protobuf安装npm i bplus-protobuf读取一个原始文件const content = fs . readFileSync ...

    新版Android开发教程.rar

    支持 HTTP 、 WAP Push 和 xHTML ;支持 POP 、 IMAP 、 SMTP ,以及 AOL 和 GMAIL 电子邮件服务;支持 AIM 、 MSN 、雅虎通和 GTALK ;与谷歌日历同步;与 Android Market 联机;支持谷歌 “ 街景 ” 服务;包装盒...

    Web Services 教程

    HTTP 协议 37 SOAP HTTP Binding 38 Content-Type 38 Content-Length 38 SOAP 实例 39 一个 SOAP 实例 39 您已经学习了 SOAP,下一步呢? 40 SOAP 概要 40 您已经学习了 SOAP,下一步呢? 40 JSON 教程 41 每一章...

Global site tag (gtag.js) - Google Analytics