`
cczj2008
  • 浏览: 3616 次
  • 性别: 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协议中关于Content-Length的解读.docx

    Http协议中关于Content-Length的解读 Http协议中的Content-Length头域用于描述HTTP消息实体的传输长度。 Content-Length头域的存在可以帮助客户端确定消息实体的传输长度,从而避免消息传输中的错误。 在HTTP协议...

    http协议进阶之Transfer-Encoding和HttpCore实现详解

    Content-Encoding通常是对数据内容进行一些压缩编码操作,而Transfer-Encoding通常是对传输采用分块策略之类的。 Content-Length头的作用是指定待传输的内容的字节长度。如果想知道Transfer-Encoding和Content-...

    http响应头首部Content-Length.rar_HTTP_saynvx

    "Content-Length"首部便是其中之一,它定义了响应体的大小,即实际传输的数据量,以字节为单位。 "Content-Length"字段的用途主要有以下几点: 1. **分块传输编码**:当服务器使用分块传输编码发送响应时,...

    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 ...

    Go-依赖Content-Typeheader自动地解析request.Body

    总结,Go语言中,依赖`Content-Type`头解析`request.Body`涉及对HTTP协议的理解、对MIME类型的识别以及使用相应的标准库。通过正确处理不同类型的`Content-Type`,我们可以确保服务器能够准确地解析和处理来自客户端...

    HTTP协议头详解

    HTTP 协议头详解 HTTP 协议头是 HTTP 协议的核心组成部分,用于传送 WWW 方式的数据。HTTP 协议采用了请求/响应模型,客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户...

    HTTP协议的头信息详解.pdf

    * Content-Encoding 头域:指定响应消息的内容编码。 * Content-Language 头域:指定响应消息的语言。 * Content-Length 头域:指定响应消息的长度。 实体头域 实体头域包含请求和响应消息的实体头域,例如: * ...

    HTTP 请求报头详解

    这些字段提供了关于实体元信息,例如 Allow 字段、Content-Encoding 字段、Content-Language 字段、Content-Length 字段、Content-Location 字段、Content-MD5 字段、Content-Range 字段、Content-Type 字段、...

    HTTP协议学习心得体会[参考].pdf

    2. 消息头:包括 Cache-Control、Content-Type、Set-Cookie、Content-Encoding、Server、Transfer-Encoding、Date 等字段。 3. 实体内容:网页文档的内容。 HTTP 协议的版本史: 1. HTTP1.0:规定浏览器与服务器只...

    http协议头简介

    Content-Encoding头部字段指定了实体主体(Entity Body)使用的编码方法。这通常用于压缩数据。 **示例:** ``` Content-Encoding: gzip ``` #### Content-Length **定义:** Content-Length头部字段指定了实体...

    http协议学习总结协议格式消息头消息体等[参照].pdf

    HTTP 协议学习总结 HTTP 协议是一种通信协议,允许将超文本标记语言 (HTML) ...实体报头包括 Allow、Content-Encoding、Content-Language 等。 了解 HTTP 协议的工作机理和报头结构对于 Web 开发和网络通信非常重要。

    http协议基础.doc

    - **Content-Encoding**:指示实体体使用的编码(如gzip压缩)。 #### 五、HTTP请求方法 HTTP请求方法指定了客户端希望执行的操作,常见的方法包括: - **GET**:请求指定的页面信息并返回实体主体。 - **POST**...

    HTTP协议详解PDF可打印版RFC2616

    5. **内容编码与分块传输**:Content-Encoding用于压缩或解压缩实体内容,Transfer-Encoding用于分块传输大文件,避免一次性发送完整内容导致的阻塞。 6. **版本升级**:HTTP/1.1引入Upgrade首部字段,允许在连接中...

    HTTP 响应码和Header信息介绍文档

    * 通用头标:Accept、Accept-Charset、Accept-Encoding、Accept-Language、Accept-Ranges、Age、Allow、Authorization、Cache-Control、Connection、Content-Base、Content-Encoding、Content-Language、Content-...

    MIME学习笔记--转载

    MIME不仅限于电子邮件,它的`Content-Type`和`Content-transfer-encoding`字段在HTTP协议中也扮演着重要角色。HTTP响应和请求头中的`Content-Type`指示了数据的类型,如HTML、JSON、图片或视频等,而`Content-...

    计算机网络-HTTP协议实验报告

    ### 计算机网络-HTTP协议实验报告 #### 第一关:HTTP基本请求与应答 **实验目的:** - 分析HTTP请求与应答中各字段的作用及取值。 - 了解HTTP协议的基本结构。 **实验内容与操作步骤:** 1. **背景知识与所需...

    python计算Content-MD5并获取文件的Content-MD5值方式

    然而,为了与HTTP协议中的Content-MD5头兼容,我们需要对原始的128位二进制哈希结果进行Base64编码,这样生成的字符串更便于在网络中传输。 以下是如何在Python中计算文件Content-MD5值的两种方法: 1. 第一种方法...

    HTTP协议头字段及分析

    HTTP协议定义了一系列的规则来规范客户端与服务器之间的交互方式,而HTTP头部字段则是这些交互中非常关键的部分之一。 HTTP头部字段分为四类:通用头部字段(General Header)、请求头部字段(Request Header)、...

    HTTP协议内容简介

    HTTP 协议作为互联网上最重要的协议之一,支撑着现代网络通信的基础。通过理解 HTTP 的基本概念、请求和响应机制、请求方法以及状态码,可以帮助开发者更好地构建高效、稳定的 Web 应用和服务。此外,深入学习 HTTP ...

Global site tag (gtag.js) - Google Analytics