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

对 Content-Encoding 和 Transfer-Encoding 的初级理解

    博客分类:
  • Web
阅读更多
我的理解
========

Content-Encoding 是用于在数据源和数据最终接收者之间传递编码方式的。中间代理
(如果有的话)不会去试图解码,而只是原样传输。甚至最终接收者在保存内容的时候,
也是原样保存的。典型的情况是 http 下载 gzip 格式的压缩包。

Transfer-Encoding 是用于两个传输节点之间传递“传输”编码方式的。两个节点要进行
相对应的编码和解码。但不会改变原数据的编码。

例如,A 传输数据到 C,中间经过了代理 B 。 即,A -> B -> C 。其中,A 和 B 支持
gzip 编码,但 C 不支持 gzip 编码。则 A -> B 的过程,可以使用
Transfer-Encoding: gzip 进行传输,但 B 要做解码操作,然后把解码后的原数据直接
传给 C 。具体步骤如下:

  > 1. A 生成需要传输的数据 d ;
  > 2. A 对 d 进行 gzip 编码得到 d1 ;
  > 3. A 把 d1 传输给 B (使用 Transfer-Encoding: gzip);
  > 4. B 接收 d1 ;
  > 5. B 解码 d1 得到原来的数据 d;
  > 6. B 把 d 传输个 C (不使用 Transfer-Encoding);
  > 7. C 接收 d 。

也就是说,Content-Encoding 描述了要传输的数据的某种属性;而 Transfer-Encoding
描述的是数据的传输方式,即数据进行某种编码后再传输,或者把数据分块后再传输。

下面是一些关于 Accept-Encoding、Content-Encoding、 TE、Transfer-Encoding 的资料。直接复制的这里的内容。

Some Links to RFC 2616
======================

* 3.5  Content Codings

  http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.5

* 3.6  Transfer Codings

  http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6

* 4.3  Message Body

  http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3

* 14.3  Accept-Encoding

  http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3

* 14.11 Content-Encoding

  http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11

* 14.39 TE

  http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.39

* 14.41 Transfer-Encoding

  http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.41


Note
====

* The changes from RFC 2068 regarding transfer codings

  http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.6.3
分享到:
评论

相关推荐

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

    " Transfer-Encoding和HttpCore实现详解" ...Content-Encoding和Transfer-Encoding是两个不同的概念,Content-Encoding是对数据内容采用什么样的编码方式,而Transfer-Encoding是对数据传输采用什么样的编码。

    apache-any23-encoding-0.8.0-javadoc.jar

    标签:apache-any23-encoding-0.8.0-javadoc.jar,apache,any23,encoding,0.8.0,javadoc,jar包下载,依赖包

    Auto-Encoding Variational Bayes.pdf

    - **对生成对抗网络(GANs)在视频生成任务上有兴趣的工程师和开发者**:能够了解如何将GAN应用于视频处理领域,包括视频内容的生成和分析。 - **探索深度学习在视频处理和动作识别中的应用的数据科学家**:可以使用...

    Python库 | torch-encoding-1.2.1b20200625.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:torch-encoding-1.2.1b20200625.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    PyPI 官网下载 | torch-encoding-1.2.2b20200702.tar.gz

    《PyPI官网下载:torch-encoding-1.2.2b20200702.tar.gz——深入了解Python库的使用与功能》 在Python的生态中,PyPI(Python Package Index)扮演着至关重要的角色,它是全球最大的Python软件仓库,提供了无数的第...

    Python库 | torch-encoding-1.2.0b20200428.tar.gz

    总的来说,torch-encoding-1.2.0b20200428是Python开发者在进行深度学习和自然语言处理项目时的重要工具,它简化了预训练模型的使用,并提供了高效的工具来处理文本数据。对于那些希望在NLP领域探索创新的开发者来说...

    parquet-encoding-1.8.2-API文档-中文版.zip

    赠送jar包:parquet-encoding-1.8.2.jar; 赠送原API文档:parquet-encoding-1.8.2-javadoc.jar; 赠送源代码:parquet-encoding-1.8.2-sources.jar; 赠送Maven依赖信息文件:parquet-encoding-1.8.2.pom; 包含...

    IIS上启用Gzip压缩(HTTP压缩)

    如果“Accept-Encoding”包含“gzip, deflate”,则表明浏览器支持Gzip和Deflate两种压缩方式。 2. **检查文件类型与压缩配置**:如果确认浏览器支持压缩,Web服务器会进一步检查请求文件的类型及其压缩配置。对于...

    simple-binary-encoding, 简单二进制编码( SBE ) 高性能消息编解码器.zip

    simple-binary-encoding, 简单二进制编码( SBE ) 高性能消息编解码器 简单二进制编码( SBE )SBE 是一种用于编码和解码二进制应用程序消息的OSI层 6表示,用于低延迟的金融应用程序。 这个库包含了 Java 。C++ 。...

    parquet-encoding-1.10.1-API文档-中文版.zip

    赠送jar包:parquet-encoding-1.10.1.jar; 赠送原API文档:parquet-encoding-1.10.1-javadoc.jar; 赠送源代码:parquet-encoding-1.10.1-sources.jar; 赠送Maven依赖信息文件:parquet-encoding-1.10.1.pom; ...

    parquet-encoding-1.10.0-API文档-中文版.zip

    赠送jar包:parquet-encoding-1.10.0.jar; 赠送原API文档:parquet-encoding-1.10.0-javadoc.jar; 赠送源代码:parquet-encoding-1.10.0-sources.jar; 赠送Maven依赖信息文件:parquet-encoding-1.10.0.pom; ...

    parquet-encoding-1.10.1-API文档-中英对照版.zip

    赠送jar包:parquet-encoding-1.10.1.jar; 赠送原API文档:parquet-encoding-1.10.1-javadoc.jar; 赠送源代码:parquet-encoding-1.10.1-sources.jar; 赠送Maven依赖信息文件:parquet-encoding-1.10.1.pom; ...

    parquet-encoding-1.8.2-API文档-中英对照版.zip

    赠送jar包:parquet-encoding-1.8.2.jar; 赠送原API文档:parquet-encoding-1.8.2-javadoc.jar; 赠送源代码:parquet-encoding-1.8.2-sources.jar; 赠送Maven依赖信息文件:parquet-encoding-1.8.2.pom; 包含...

    Http协议中关于Content-Length的解读.docx

    如果实体长度和传输长度不相等(例如设置了Transfer-Encoding),那么不能设置Content-Length。 4. 通过服务器关闭连接可以确定消息的传输长度,这种情况主要对应于短连接,即非keep-alive模式。 5. HTTP/1.1必须...

    apache-any23-encoding-0.9.0-sources.jar

    标签:apache-any23-encoding-0.9.0-sources.jar,apache,any23,encoding,0.9.0,sources,jar包下载,依赖包

    apache-any23-encoding-1.1.jar

    标签:apache-any23-encoding-1.1.jar,apache,any23,encoding,1.1,jar包下载,依赖包

    apache-any23-encoding-1.0-sources.jar

    标签:apache-any23-encoding-1.0-sources.jar,apache,any23,encoding,1.0,sources,jar包下载,依赖包

    vsftpd-encoding

    为了确保VSFTPD正确地识别和处理中文编码,我们需要理解其内部的工作机制以及如何配置。 首先,FTP协议本身并不直接支持Unicode或UTF-8编码,而是使用ASCII编码,这就导致了在处理非ASCII字符时可能出现的问题。...

    serverless-content-encoding:无服务器插件可启用内容编码以进行响应压缩

    安装使用纱: $ yarn add -D serverless-content-encoding 使用npm: $ npm install --save-dev serverless-content-encoding配置将插件及其配置添加到您的serverless.yml文件中: plugins : - serverless-content-...

Global site tag (gtag.js) - Google Analytics