`
liyixing1
  • 浏览: 961808 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

Transfer-Encoding

 
阅读更多
请求:
POST /web_proxy.html HTTP/1.1
User-Agent: Java/1.6.0_33
Host: 127.0.0.1:82
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Content-type: application/x-www-form-urlencoded
Transfer-Encoding: chunked

6
test=1
6
test=2


回复类似

HTTP相应头:Transfer-Encoding
字面意思是「传输编码」。
实际上,HTTP 协议中还有另外一个头部与编码有关:Content-Encoding(内容编码)。
Content-Encoding 通常用于对实体内容进行压缩编码,目的是优化传输,例如用 gzip 压缩文本文件,能大幅减小体积。
内容编码通常是选择性的,例如 jpg / png 这类文件一般不开启,因为图片格式已经是高度压缩过的,再压一遍没什么效果不说还浪费 CPU。

而 Transfer-Encoding 则是用来改变报文格式,它不但不会减少实体内容传输大小,甚至还会使传输变大,那它的作用是什么呢?

本文接下来主要就是讲这个。Content-Encoding 和 Transfer-Encoding 二者是相辅相成的,对于一个 HTTP 报文,很可能同时进行了内容编码和传输编码。

通常我们可以通过Content-Length
来设置http相应的数据长度,但是如果数据长度未可知,就不行了

Transfer-Encoding 则可以告诉浏览器,内容是被分段发送的。
Transfer-Encoding: chunked  分块编码(chunked)

分块输入后,http resonse body的内容就会变成
数据长度(16进制,独占一行)
和数据长度一致的数据
数据长度2(16进制,独占一行)
和数据长度2一致的数据
0结尾是0



HTTP/1.1 200 OK
Server: nginx
Date: Sun, 03 May 2015 17:25:23 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Content-Encoding: gzip

1f
�H���W(�/�I�J

0
分享到:
评论

相关推荐

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

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

    boost之http请求及chunked解析

    这通常涉及读取响应头,找到“Transfer-Encoding: chunked”字段,然后循环读取每个chunk的大小和实际数据。每个chunk的大小是十六进制数字,后面跟着一个回车换行符,接着是chunk的实际数据,再然后是另一个回车换...

    HTTP chunked方式传输的C语言解析示例

    1. **读取头部信息**:首先,你需要解析HTTP响应头,寻找`Transfer-Encoding: chunked`字段,这表明后续的数据将以chunked编码的形式传输。同时,也要注意`Content-Type`头,因为它定义了数据的类型。 2. **理解...

    weblogic不兼容客户端的解决办法

    解决方法一:关闭 Transfer-encoding: chunked WebLogic 服务器提供了一个配置选项,用于关闭 chunked 编码的传输方式。这可以通过 WLST(WebLogic Scripting Tool)工具来实现。具体步骤如下: 1. 启动 WLST 工具...

    关于PHP 如何用 curl 读取 HTTP chunked 数据

    在HTTP协议中,`Transfer-Encoding: chunked`是一种用于分块传输编码的方式,常用于服务器无法预先知道响应体总长度的情况。这种方式将响应体分成多个块(chunks),每一块都有一个大小标识,最后以一个零长度的块...

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

    2. 如果有Transfer-Encoding头域,则优先采用Transfer-Encoding中的方法来确定消息长度,例如Chunked模式。 3. 如果头域中有Content-Length头域,那么该头域既表示实体长度,又表示传输长度。如果实体长度和传输长度...

    HTTP大文件传输方案

    - **Transfer-Encoding**: 传输编码字段指定了分块传输的类型,即`chunked`。使用`chunked`编码时,Content-Length头被省略。每一块数据前需附带以十六进制格式表示的块长度,后跟`\r\n`,然后是块本身及另一个`\r\n...

    MIME学习笔记--转载

    头部信息中,MIME添加了`MIME-Version`、`Content-Type`和`Content-transfer-encoding`等字段。 4. **MIME头部信息** - `MIME-Version: 1.0`:标识邮件使用MIME规范,且版本固定为1.0。 - `Content-Type: 主要...

    HTTP协议Header详解.html

    目录: 头域定义 2 1 Accept 2 2 Accept-Charset 4 3 Accept-Encoding 5 ...41 Transfer-Encoding 35 42 Upgrade 35 43 User-Agent 36 .44 Vary 36 45 Via 37 46 Warning 38 47 WWW-Authenticate 39

    perl-MIME-Lite-3.30.0-6.mga6.noarch.rpm

    #'Content-transfer-encoding'=>'7bit', Data =>encode("utf8", $opt->{body}), Encoding => 'base64', ); $msg->attr("content-type.charset" => "UTF-8"); #$msg->send('smtp','wwww.maildir.cn',Debug=>0);

    HTTP1.1消息头

    通用消息头是可以用于请求和响应的消息头,包括 Cache-Control、Connection、Date、Pragma、Trailer、Transfer-Encoding、Upgrade 和 Via 等。 1. Cache-Control:用于控制缓存机制,包括public、private、no-cache...

    电子邮件解析算法的研究与实现.pdf

    MIME定义了五种新邮件头字段,包括MIME-Version(MIME版本)、Content-Type(媒体类型)、Content-Transfer-Encoding(内容传送编码)、Content-Id(内容标识)和Content-Description(内容描述)。其中,Content-...

    期末测试卷-2021-2022学年道德与法治三年级上册-部编版3.doc

    6. `Content-Transfer-Encoding`: 用于指示如何编码邮件中的数据,这里是base64,意味着数据被转换成了一种可以在电子邮件中安全传输的格式。 7. `Content-Type` 和 `Content-Transfer-Encoding` 后面的值分别指定...

    程序设计录1

    判断一个响应是否使用了chunked编码,不仅要检查响应头中有无`Transfer-Encoding`字段,还需要确认其后的值确实是`chunked`。如果存在其他值,如`UTF8`,则表示不是chunked编码。这在不同浏览器的兼容性测试中尤为...

    Java加密技术

    (The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.) 常见于邮件、http加密,截取http信息,你就会发现登录操作的...

    vapr-decompress:一个Vapr插件,用于解压缩请求主体

    vapr-解压安装npm install --save vaprnpm install --save vapr-decompress用法此插件根据 Content-Encoding 和 Transfer-Encoding 标头解压缩请求正文。 const decompress = require ( 'vapr-decompress' ) ;const ...

    HTTP 请求报头详解

    * General Header Fields: Cache-Control、Connection、Date、Pragma、Trailer、Transfer-Encoding、Upgrade、Via、Warning * Request Header Fields:Accept、Accept-Charset、Accept-Encoding、Accept-Language、...

    P21_创建Company资源POST_P20_HTTP方法的安全性与幂等性_Routine.Api2020_2_7.rar

    Transfer-Encoding:chunked Location:http://localhost:5000/api/companies/61156544-d8bd-4787-a79a-a484dd9a382c 在浏览器中输入http://localhost:5000/api/companies/61156544-d8bd-4787-a79a-a484dd9a382c ...

    HTTP协议的头信息详解.pdf

    通用头域包含请求和响应消息都支持的头域,包括 Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via 等。 * Cache-Control 头域:指定请求和响应遵循的缓存机制。 Cache-Control 头域可以...

    ORRO:一个用Python写成的HTTP HTTPS代理

    Python3迁移修改(主要:socket受送信数据变更为byet)Transfer-Encoding头处理追加log功能完善今后开发主要在Python3下进行2015.01.08远端服务追加追加远端服务器转发处理文件组织结构结构调整为远端与本地本地服务...

Global site tag (gtag.js) - Google Analytics